运行 来自 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 更新以支持他们。
在 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 更新以支持他们。