在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
答案 0 :(得分:2)
我想我有资格回答这个问题:)
mwchase和mgilson在评论中说得对:使用插件意味着你依赖于该插件的行为是正确和可理解的。在有用的名义下,插件将有自己的逻辑,在编写时可能是最好的想法,但测试运行器和/或coverage.py可能在此期间发生了变化。插件往往不像其他组件那样维护良好。如果你可以避免它们,你可以少考虑一下。
真实的事实:我首先添加对.coveragerc配置文件的支持的原因是因为我想向coverage.py添加功能,并且不想等待插件UI更新以支持它们。