繁体   English   中英

为什么nosetests说--with-coverage不是一个选择?

[英]Why does nosetests say --with-coverage is not an option?

我正在使用nosetests来自动发现和运行我的单元测试。 我还想让它生成报道报告。

当我使用以下命令运行nosetests时,一切正常

nosetests .

我在网上查询生成覆盖率,nosetests有一个命令行参数--with-coverage 我还使用nosetests --help仔细检查了这个命令是否存在。 但是,每当我运行以下命令时,我得到以下输出

nosetests --with-coverage .
Usage: nosetests [options]

nosetests: error: no such option: --with-coverage

我仔细检查了通过运行安装coverage插件

nosetests --plugins

覆盖率与一堆其他插件一起显示在列表中。

我也知道我已经安装了覆盖,因为我可以使用以下内容手动运行覆盖数据集:

coverage run test.py

我是否滥用了--with-coverage选项? 或者还有其他我想念的东西?

提前致谢。

你的语法是正确的。 这可能是您的环境问题,请仔细检查您的python环境以及安装了鼻子和覆盖范围的位置。 作为完整性检查,您可以快速设置新的virtualenv,安装鼻子,并使用coverage选项运行命令。

我从来没有让命令行选项工作。 我做了Janne Karila建议的并在我的项目主目录中创建了一个setup.cfg文件。 一旦我拥有该文件,我就可以运行没有参数的nosetests,一切都会运行。

我在尝试创建文档时遇到的一个问题是我无法弄清楚配置中允许的参数。 但事实证明,可以使用此处列出的任何命令https://nose.readthedocs.org/en/latest/usage.html#options 在命令之前留下双破折号。

作为参考,我当前的配置文件是

[nosetests]
verbosity=1
detailed-errors=1
with-coverage=1
cover-erase=1
cover-package=application
cover-html=1
cover-html-dir=htmlcov
where=tests

此配置文件表示使用coverage,擦除先前运行的覆盖范围,仅报告应用程序包中的文件,以及将html报告输出到htmlcov目录。

希望这将有助于未来的其他人。

nose 1.3.7 开始--Pypy上可用的最新版本 - 该命令不存在:

https://github.com/nose-devs/nose/blob/release_1.3.7/nose/plugins/cover.py

看起来文档是从项目的master分支生成的, 具有以下可用选项:

https://github.com/nose-devs/nose/blob/master/nose/plugins/cover.py

可以做的是从主分支安装nose ,如下所示:

pip install git+https://github.com/nose-devs/nose@master --upgrade

它会说它刚刚安装了1.3.7但这只是因为该版本尚未在项目setup.py文件中出现问题: https//github.com/nose-devs/nose/blob/master/setup.py #L4

记住你刚刚安装了一个未发布的版本的nose ,可能还有其他的bug。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM