为啥 Coverage.py 会忽略没有覆盖的文件?
Posted
技术标签:
【中文标题】为啥 Coverage.py 会忽略没有覆盖的文件?【英文标题】:Why does Coverage.py ignore files with no coverage?为什么 Coverage.py 会忽略没有覆盖的文件? 【发布时间】:2017-08-22 00:01:52 【问题描述】:我第一次跑
nosetests --with-coverage
所以我应该有一个包含所有默认设置的 .coverage 文件。
在文件夹_1 中,我有file_1.py、file_2.py 和file_3.py
当我 cd 进入 folder_1 并运行时
coverage report
它输出:
它不会为 file_3.py 生成任何东西!但是当我运行时:
coverage report file_3.py
上面写着:
它会跳过报告中没有覆盖的文件吗?如何更改它以便报告显示每个 *.py 文件的结果?
【问题讨论】:
请复制并粘贴来自coverage
的输出,而不是发布文本图像。
【参考方案1】:
您需要为coverage.py 指定一个源目录以查找根本没有执行过的文件。您可以在命令行中使用--source=folder_1
,或在.coveragerc 文件中使用[run] source=folder_1
。
【讨论】:
不知何故,当我执行:“覆盖报告”时,我得到了完整的报告。但是当我执行:“coverage run”时,它会显示“Nothing to do”。我在这里做错了什么?我正在查看这些文档:coverage.readthedocs.io/en/coverage-4.3.4/source.html “coverage run”需要一个程序才能运行:“coverage run myprog.py” 那么对于从未执行过的文件,我是否可以只指定位置并说“在这里运行所有东西”,而不是命名每个单独的文件? 你把代码的运行和代码的分析混为一谈了。你必须告诉报道要运行什么。运行该文件后,--source=folder_1
选项会告诉它在查找尚未执行的代码时考虑 folder_1 中的所有 Python 文件。以上是关于为啥 Coverage.py 会忽略没有覆盖的文件?的主要内容,如果未能解决你的问题,请参考以下文章
为啥coverage.py 不能正确测量Django 的runserver 命令?
如何解释 Python coverage.py 分支覆盖结果?