2017-10-24 6 views
0
이 같은 배치 프로젝트가

으로 최상위 레벨 패키지 이름을 변 결과 coverage.xml. 이름 :파이썬 적용 기간

<package branch-rate="0.4722" complexity="0" line-rate="0.6801" name="."> 

을하지만 012,342를 호출하는 경우 이 같은: 그런 다음 최상위 레벨 패키지가 제대로 ex_secure라는

pytest -s --junitxml=pytests.xml --cov-report xml --cov-report term-missing --cov-branch --cov=ex_secure.base --cov=ex_secure.metrics --cov=ex_secure.keys 

:

<package branch-rate="0.4722" complexity="0" line-rate="0.6801" name="ex_secure"> 

그것은 지금은 괜찮은 해결 방법이지만, 이상적 아니다. 더 많은 패키지를 추가 할 경우 패키지를 계속 열거해야합니다 (또는 패키지가 누락 될 수 있습니다). 또한 __init__.py은이 메커니즘을 사용하여 다루지 않습니다.

내가 뭘 잘못하고 있니?

UPDATE 1 :

coverage run --branch --source=ex_secure -m pytest -s --junitxml=pytests.xml 
coverage xml 

다음 :

<package branch-rate="0.4722" complexity="0" line-rate="0.6771" name="ex_secure"> 

UPDATE를 내가 대신 직접 pytest-cov를 사용하여 파이썬 범위를 실행하면

, 그것은 예상대로 작동 2 :

내가 원래처럼 PyTest을 실행하지만 다시 생성 된 보고서가 수정됩니다 직접 파이썬 범위와 XML 보고서를 다시 생성 할 경우,하지만이 약간 다른 번호 : 그럼

:

<package branch-rate="0.3058" complexity="0" line-rate="0.4769" name="ex_secure"> 

답변

0

불행하게도,이 Py를-범위 및 PyTest-COV 모두에 걸쳐 다소 불쾌한 두 부분의 버그입니다. 자세한 내용은 PyTest-Cov GitHubPy-Coverage BitBucket에 설명되어 있습니다. 명령 줄에서 coverage xml를 호출 한마디로

는 대부분의 사람들이이 문제를 볼 수 없습니다 있도록, sources에 통과하는 것을 허용하지 않지만, Py를-범위에 대한 파이썬 API를 사용할 때 당신은 sources 전달할 수 있으며, 해당 API가 sources 속성을 올바르게 처리하지 못합니다. 한편 PyTest-Cov는 Py-Coverage 용 Python API를 사용하므로 --cov=xxxx--cov-report xml으로 PyTest-Cov를 호출하면이 문제가 발생합니다.