2014-02-23 5 views
1

내 프로젝트에는 프로젝트의 모든 python 모듈에 대한 테스트가있는 폴더가 있습니다. 테스트는 unittest을 통해 구현됩니다. 내가 코드를 테스트 할 때코 프레임 워크 : 적용 대상 테스트에서 scipy.stats를 포함하지 마십시오

, 나는 nose를 사용하고, 나는 터미널에서 실행

$ cd test_folder/ 
$ nosetests 

모든 것이 괜찮습니다. 나는 시험에 의해 실행되는 코드 커버리지에 대한 정보를 갖고 싶어 때, 나는 내가

from scipy import stats 
으로 가져 오는 것이, scipy.stats 모듈 내 .py 모듈 중 하나 안에, 내가 사용, 그러나

$ nosetests --with-coverage 

를 다음 실행할

때문에
import scipy 
scipy.stats.foo() 

not work 않습니다. 문제는 적용 범위가있는 테스트를 실행할 때 scipy 및 이벤트 numpy 모듈 전체에 대해 적용 범위 분석이 인쇄된다는 것입니다. 따라서, 커버리지 테스트의 출력은 읽을 수 없다 : 그 모듈들의 커버리지에 관한 수백 라인.

출력 예 :

... 
numpy.polynomial.polytemplate      6  1 83% 16 
numpy.polynomial.polyutils      73  53 27% 76-80, 106-112, 156-179, 226-234, 274-280, 323-327, 392-394 
numpy.random          9  1 89% 98 
numpy.random.info         2  0 100% 
numpy.version          7  1 86% 10 
... 
scipy.interpolate.info       1  0 100% 
scipy.io.info          1  0 100% 
scipy.lib           3  0 100% 
scipy.lib.blas         49  36 27% 16-17, 26-65 
scipy.lib.blas.info        0  0 100% 
scipy.lib.info         1  0 100% 
... 

당신이 nosetests --with-coverage은 적용 범위에 대한 numpyscipy 모듈 통계 출력하는 것을 방지하는 방법을 알고 계십니까?

답변

1

당신은 다음 구문을 사용하여 scipy에서 통계를 가져올 수 있습니다

import scipy.stats 
scipy.stats.foo() 

당신은 --cover 패키지 옵션으로 커버리지 보고서를 제한 할 수 있습니다. 따라서 코드가 앱 패키지에 있으면 호출은 다음과 같습니다.

nosetests --with-coverage --cover-package=app tests/