문제

나는 파이썬 장치 테스트, 특히 Coverage.py를 가진 신인입니다. 범위 보고서가 실제 테스트 파일의 적용 범위를 포함하는 것이 바람직합니까?

여기 내 스크린 샷이 있습니다 HTML 보고서 예로서.

보고서에 포함되어 있음을 알 수 있습니다 tests/test_credit_card. 처음에 나는 생략하려고했다 tests/ 보고서의 디렉토리 : So :

coverage html --omit=tests/ -d tests/coverage

나는 그 명령의 몇 가지 변형을 시도했지만 ~ 아니다 내 삶을 위해 시험을 받거나 제외합니다. 패배를 수락 한 후, 나는 아마도 테스트 파일이 추정된 보고서에 포함됩니다.

누구든지 이것에 대해 약간의 빛을 발할 수 있습니까?

도움이 되었습니까?

해결책

편집하다: 나는 이제 아래 의견에 동의하는 것이 당신의 프로덕션 코드 테스트를 테스트 코드의 테스트와 혼합하는 것이 좋지 않다는 것에 대해 동의한다고 생각합니다. 허용 된 답변을 삭제할 수 없으므로 변경되지 않은 상태로 두십시오.

** 내 대답을 축소하십시오! **


문제를 가리킬 수 있으므로 테스트의 적용 범위를 보는 것이 좋습니다. 테스트 코드가 실행되지 않으면 글을 쓰는 데 많은 점이 없었습니다!

내가 항상 얻는 것은 두 개의 단위 테스트 기능을 같은 이름으로주는 것입니다. 원본 후 몇 달 후에 새로운 테스트를 추가하고 같은 이름을 선택합니다. UnitTest Framework는 이에 대해 불평하지 않습니다. 함수 중 하나가 다른 기능을 숨기고 테스트 중 하나를 실행하지 않습니다! 자세한 보도 보고서는 즉시 문제를 보여줍니다.

테스트에 실행되지 않는 다른 코드가있는 경우 다른 버그를 가리킬 수 있지만 일반적으로 테스트가 호출되는 방식에 따라 다루지 않을 수있는 몇 줄의 보일러 플레이트 코드가 있습니다. 10%에 도달하는 것에 대해 집착했습니다.

그리고 더 이상 필요하지 않은 테스트 코드가 있다면 항상 삭제하는 것이 좋습니다!

다른 팁

coverage html --omit="*/test*" -d tests/coverage

만들다 .coveragerc 프로젝트 루트 폴더에 파일을 파일하고 다음을 포함하십시오.

[run]
omit = *tests*

또한 생략 할 내용을 말하는 대신 적용 범위를 원하는 코드가있는 디렉토리를 명시 적으로 지정할 수도 있습니다. 안에 .coveragerc 관심 디렉토리가 호출되는 경우 파일 demo, 이것은 모양입니다

[run]
source = demo
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top