2017-09-24 8 views
0

python coverage config (.coveragerc) 파일을 사용할 때 둘 이상의 테스트 파일을 지정하는 방법이 있는지 궁금합니다. 설정 파일이 아닌 경우 명령 줄에서 실행할 때 가능할 수 있습니까? 순간 , 3 개 가지 단위 테스트 파일을 내가 사용하고 있습니다 :Python coverage : 1 개 이상의 테스트 실행

coverage run test1 
coverage run -a test2 
coverage run -a test3 

가 어떤 짧은 될 수 있을까? 감사

+0

pytest를 통해 적용 범위를 실행할 수 있습니다. – thebjorn

답변

1

편집 (2017년 9월 25일) : @ 네드 - BATCHELDER이 코멘트에 말한다으로 새로운 프로젝트를 시작하면 코가 관리되지 않는 한,, nose 이상 pytest을 선호합니다.

Coverage documentation을 살펴보면 coverage이 지원하는 유일한 모드는 각 명령과 함께 특정 모듈을 실행하는 것처럼 보입니다.

당신은 모든 테스트를 실행하는 등 nosepytest으로, 테스트 프레임 워크를 사용하고 성공/실패 속도와 전체 범위를보고 할 수 있습니다.

그의 모든 모듈 또는 패키지의 --cov 플래그를 사용 pytest

1) pytest 커버리지 및 pytest-COV

pip install pytest 
pip install coverage 
pip install pytest-cov 

2)에 pytest Section 명령 실행을 설치하여 전체 코드 과잉 알아 당신이 측정해야 할 범위.

pytest --cov=foo --cov=bar 

샘플 출력 : 예를 들어 그들은 패턴 test_*.py (또는 다른 사람, 더 많은 정보 here)와 일치하는 경우

Name  Stmts Miss Cover Missing 
-------------------------------------- 
bar.py  3  1 67% 5 
foo.py  6  2 67% 9-11 
-------------------------------------- 
TOTAL  9  3 67% 

pytest는 테스트를 찾을 수 있습니다.

--with-coverage 플래그

nosetests --with-coverage 
으로, nose

1)

pip install nose 
pip install coverage 

2)가 nosetests 명령을 실행 코와 범위를 설치하여 전체 코드 커버리지를 찾아

샘플 출력 (단일 모듈 foo.py을 가진) :

Name  Stmts Miss Cover 
---------------------------- 
foo.py  6  2 67% 
---------------------------------------------------------------------- 
Ran 1 test in 0.008s 

OK 

nosetests 자동으로 테스트가 몇 가지 추론을 사용하여 찾을 수 있습니다. 예를 들어, test으로 시작하는 파일 이름에 테스트를 넣고 unittest.TestCase에서 상속하여 테스트 케이스를 생성하면 nosetests이 테스트 케이스를 찾습니다. 더 많은 정보 here.

+1

코를 사용하지 마십시오. 그것은 유지되지 않습니다. 지금 pytest로 시작하십시오. –