【问题标题】:turning off coverage in nosetests在鼻子测试中关闭覆盖范围
【发布时间】:2023-04-07 22:17:02
【问题描述】:

在运行鼻子测试时如何有条件地关闭关闭覆盖?

有一个 --with-coverage 标志似乎并没有做那么多。它当然不会关闭覆盖范围。

请注意,我喜欢报道,我想保留它。我只是觉得每次手动运行鼻子测试时看到它的输出非常分散注意力。那个时候,我想看看测试结果,如果有什么失败。

我的 ~/.noserc 有以下内容,但重命名文件没有帮助。

[nosetests]
verbosity=3
with-coverage=0
match=(?:^|[\b_\./-])[Tt]est|^ut_
cover-html=1

在大多数情况下,我更希望有相同的鼻子测试行为,就好像根本没有安装覆盖一样。

上次我安装鼻子时,我通过修改主启动脚本中的 optparse 组合了一个 --cover-none 1 选项。基本上,如果设置了该标志,我将打开程序用来防止未安装覆盖的相同“未安装覆盖”标志。工作正常,但有点笨拙。

【问题讨论】:

    标签: python code-coverage nose


    【解决方案1】:

    只需从配置文件中完全删除 with-coverage 选项。

    长话短说:--with-coverage,与所有其他插件开启标志一样,定义为 store-true 操作 (in optparse context),因此任何值,即使是 0、False 或 None 都会开启插件。您必须完全删除该选项。当您删除 with-coverage, 时,默认值 False 将用于关闭覆盖插件。

    另外,请尝试使用nosetests -v 3 运行,看看还有什么可能会影响您的设置。您能否将nose.cfg 放在您的主目录中?

    【讨论】:

    • 对我不起作用。这就是我将 ~/.noserc 重命名为其他内容的原因,以防万一是配置文件中的某些内容触发了它。我只需在命令行上输入“nosetests ”。至于为什么它会触发任何值?...这可能取决于 optparse 参数处理代码的编写方式 - 有时任何值都用于将 True 存储在布尔值中。现在,你是说你已经安装了nose,以及coverage,当你不设置--with-coverage 时你没有得到覆盖率报告?
    • 是的,将其设置为 0 是不够的。必须从配置文件中删除 with-coverage。
    • 查看了代码本身,结果证明您是对的。当我执行“export NOSE_IGNORE_CONFIG_FILES=1”时,我的问题就消失了。所以我又看了一些配置文件。 Nose 使用当前目录中的 setup.cfg 以及 ~/.noserc。我曾在我的测试目录中寻找杂散的 nose 文件,但完全忘记了 setup.cfg。我现在将它重命名为nose_setup.cfg,并且在运行nose 时将使用-c 开关明确地将其用作配置文件。
    猜你喜欢
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-10
    • 2012-07-19
    相关资源
    最近更新 更多