2014-02-23 66 views
1

在我的項目中,有一個文件夾,其中包含項目的所有python模塊的測試。測試通過unittest執行。鼻框架:避免將scipy.stats包含在測試中

當我想測試的代碼,我用nose,我從終端運行:

$ cd test_folder/ 
$ nosetests 

,一切都OK。當我想有有關測試執行的代碼覆蓋率的信息,我運行下面的

$ nosetests --with-coverage 

然而,裏面的我.py模塊之一,我用scipy.stats模塊,我導入由

from scipy import stats 

因爲

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/