source

테스트 디렉토리를 적용 범위에서 제외할 수 있습니까?py 보고서?

ittop 2023. 8. 20. 12:38
반응형

테스트 디렉토리를 적용 범위에서 제외할 수 있습니까?py 보고서?

저는 파이썬 유닛 테스트, 특히 coverage.py 를 하는 신인입니다.범위 보고서에 실제 테스트 파일의 범위를 포함하는 것이 바람직합니까?

예를 들어 HTML 보고서의 스크린샷입니다.

보고서에 다음이 포함되어 있음을 확인할 수 있습니다.tests/test_credit_card처음에 나는 생략하려고 했습니다.tests/다음과 같은 보고서의 디렉터리:

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

저는 그 명령어의 여러 변형을 시도했지만 아무리 해도 테스트를 받을 수 없었습니다./제외되었습니다.패배를 인정한 후, 저는 테스트 파일이 보고서에 포함되어야 하는지에 대해 의문을 품기 시작했습니다.

누가 이것을 밝혀줄 수 있습니까?

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

만들다.coveragerc프로젝트 루트 폴더에 있는 파일로, 다음을 포함합니다.

[run]
omit = *tests*

Django 개발자가 프로젝트를 위해 .coverager가 필요할 경우를 대비하여 이것을 여기에 둡니다.

[run]
source = .
omit = ./venv/*,*tests*,*apps.py,*manage.py,*__init__.py,*migrations*,*asgi*,*wsgi*,*admin.py,*urls.py

[report]
omit = ./venv/*,*tests*,*apps.py,*manage.py,*__init__.py,*migrations*,*asgi*,*wsgi*,*admin.py,*urls.py

프로젝트 루트 디렉터리에 .coverager라는 이름의 파일을 만들고 위의 코드를 붙여넣은 다음 명령을 실행합니다.

coverage run manage.py test

또한 테스트를 더 빨리 실행하려면 이 명령을 대신 실행합니다.

coverage run manage.py test --keepdb --parallel

이렇게 하면 테스트 DB가 보존되고 테스트가 병렬로 실행됩니다.

다음을 생성하여 제외할 디렉터리를 지정할 수 있습니다..coveragerc프로젝트 루트에 있습니다.

가상 환경을 제외하는 데 사용할 수 있는 와일드카드 및 설명(효과적인 추적에 매우 유용)을 지원합니다.

아래 코드 블록은 다음과 같은 방법을 보여줍니다.omit여러 파일 및 디렉터리와 함께 사용할 수 있습니다(최신 설명서 참조).

[run]
omit =
    # omit anything in a .local directory anywhere
    */.local/*
    # omit everything in /usr
    /usr/*
    # omit this single file
    utils/tirefire.py

당신의 경우, 당신은 다음을 가질 수 있습니다..coveragerc:

[run]
omit = 
    # ignore all test cases in tests/
    tests/*

적용 범위 보고서에 대한 질문에 대해 다음과 같은 방법으로 테스트 및 적용 범위에 대해 생각할 수 있습니다.

  • 실행할 때pytest또는unittest소스 코드에 대한 모든 테스트 사례가 실행됩니다.

  • 실행할 때coverage소스 코드에서 사용되지 않는 부분을 보여줍니다.

  • 범위가 포함된 파이테스트를 실행할 때(예:pytest -v --cov), 모든 테스트 사례를 실행하고 소스 코드 중 사용되지 않는 부분을 표시합니다.

추가:

  • 구성 파일에서 HTML 리포트의 위치를 다음과 같이 지정할 수도 있습니다.
[html]
directory = tests/coverage/html_report/

이것은 내부에 html, js, css 등을 만들 것입니다.tests/coverage/html_report/달릴 때마다coverage또는pytest -v --cov

또한 생략할 내용을 지정하는 대신 적용할 코드가 있는 디렉토리를 명시적으로 지정할 수 있습니다.인어.coveragerc가 파일, 관심디호출경는우되가리터렉▁the▁of,경▁file▁directory▁if우▁is▁called,는호▁interest되.demo이것은 처럼 보입니다.

[run]
source = demo

언급URL : https://stackoverflow.com/questions/1628996/is-it-possible-exclude-test-directories-from-coverage-py-reports

반응형