运行 来自 coverage.py 的测试与来自测试运行器的 运行 覆盖率

Running tests from coverage.py vs running coverage from test runner

Coverage.py with Ned Batchelder python&testing 播客中,Brian 和 Ned 简要讨论过,如果您需要 运行 覆盖率测试,它比 运行 来自 coverage.py 的测试执行 coverage run 而不是调用具有覆盖率的测试 运行ner。为什么会这样,有什么区别?


为了说明一些上下文:目前我正在使用 nose 测试 运行ner 并在 nosetests 命令行工具的帮助下执行测试 --with-coverage option:

$ nosetests --with-coverage --cover-html

我应该通过 coverage run -m 来完成吗?

$ coverage run -m nose
$ coverage report

我想我是唯一有资格回答这个问题的人:)

mwchase 和 mgilson 在他们的评论中说得对:使用插件意味着您依赖于该插件的行为是否正确且可理解。以提供帮助为名,插件将拥有自己的逻辑,这些逻辑在编写时可能是最好的想法,但测试运行器 and/or coverage.py 可能在此期间发生了变化。插件往往不像其他组件那样得到很好的维护。如果你能避免它们,你就少了一件事情。

事实真相:我首先添加对 .coveragerc 配置文件支持的原因是因为我想向 coverage.py 添加功能并且不想等待插件 UI 更新以支持他们。