在我的项目中,有一个文件夹,其中包含该项目的所有python模块的测试。这些测试是通过unittest实现的。
当我想测试代码时,我使用nose,并且我从终端运行:
$ cd test_folder/
$ nosetests一切都很好。当我想要获得有关测试执行的代码覆盖率的信息时,我运行以下命令
$ nosetests --with-coverage但是,在我的一个.py模块中,我使用了scipy.stats模块,通过以下方式导入
from scipy import stats因为
import scipy
scipy.stats.foo()那not work呢。问题是,当我使用覆盖率运行测试时,覆盖率分析也会打印出整个scipy和event 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输出关于numpy和scipy模块的覆盖率统计数据吗?
发布于 2014-02-24 00:26:52
您可以使用以下语法从scipy导入统计信息:
import scipy.stats
scipy.stats.foo()您可以使用--cover-package选项限制覆盖报告。因此,如果你的代码在app包中,那么调用应该是:
nosetests --with-coverage --cover-package=app tests/https://stackoverflow.com/questions/21967248
复制相似问题