首页 文章

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

提问于
浏览
6

我正在使用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选项?或者还有其他我想念的东西?

提前致谢 .

3 回答

  • 3

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

  • 3

    我从来没有让命令行选项工作 . 我做了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目录 .

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

  • 3

    截至 nose 1.3.7 - most recent version available on Pypy - 该命令不存在:

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

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

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

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

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

    它会说它刚刚安装了 1.3.7 但是's only because the version hasn' t在项目 setup.py 文件中被撞了:https://github.com/nose-devs/nose/blob/master/setup.py#L4

    请记住,您刚刚安装了未发布的 nose 版本,可能还有其他错误 .

相关问题