首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nose框架:避免在具有覆盖率的测试中包含scipy.stats

Nose框架:避免在具有覆盖率的测试中包含scipy.stats
EN

Stack Overflow用户
提问于 2014-02-23 18:50:53
回答 1查看 320关注 0票数 1

在我的项目中,有一个文件夹,其中包含该项目的所有python模块的测试。这些测试是通过unittest实现的。

当我想测试代码时,我使用nose,并且我从终端运行:

代码语言:javascript
复制
$ cd test_folder/
$ nosetests

一切都很好。当我想要获得有关测试执行的代码覆盖率的信息时,我运行以下命令

代码语言:javascript
复制
$ nosetests --with-coverage

但是,在我的一个.py模块中,我使用了scipy.stats模块,通过以下方式导入

代码语言:javascript
复制
from scipy import stats

因为

代码语言:javascript
复制
import scipy
scipy.stats.foo()

not work呢。问题是,当我使用覆盖率运行测试时,覆盖率分析也会打印出整个scipy和event numpy模块。因此,覆盖率测试的输出是不可读的:数百行关于这些模块的覆盖率。

输出示例:

代码语言:javascript
复制
...
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模块的覆盖率统计数据吗?

EN

回答 1

Stack Overflow用户

发布于 2014-02-24 00:26:52

您可以使用以下语法从scipy导入统计信息:

代码语言:javascript
复制
import scipy.stats
scipy.stats.foo()

您可以使用--cover-package选项限制覆盖报告。因此,如果你的代码在app包中,那么调用应该是:

代码语言:javascript
复制
nosetests --with-coverage --cover-package=app tests/
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21967248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档