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

时间:2016-07-07 03:15:52

标签: python unit-testing testing code-coverage coverage.py

Coverage.py with Ned Batchelder python&测试播客期间,Brian和Ned简要讨论过,如果您需要运行带覆盖的测试,最好从coverage.py运行测试执行coverage run而不是调用覆盖率的测试运行器。为什么会这样,有什么区别?

为此添加一些上下文:目前我正在使用nose测试运行器,并在nosetests命令行工具--with-coverage option的帮助下执行测试:

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

我应该通过coverage run -m代替吗?

$ coverage run -m nose
$ coverage report

1 个答案:

答案 0 :(得分:2)

我想我有资格回答这个问题:)

mwchase和mgilson在评论中说得对:使用插件意味着你依赖于该插件的行为是正确和可理解的。在有用的名义下,插件将有自己的逻辑,在编写时可能是最好的想法,但测试运行器和/或coverage.py可能在此期间发生了变化。插件往往不像其他组件那样维护良好。如果你可以避免它们,你可以少考虑一下。

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