我正在尝试运行代码的测试覆盖率。测试位于我项目的tests
文件夹中。没有报道,我跑了:
python -m unittest discover tests -vb
并在test目录中运行所有测试。我尝试使用运行覆盖率报告
coverage run -m unittest discover test -vb
然后
coverage html
但是html报告包含来自标准库或第三方库的模块,这些模块包含在我的virtualenv的site-packages
目录中。我认为覆盖率默认排除在外。如何正确运行coverage以排除代码之外的所有内容? Shoulde我使用--source
标志并将其设置为我项目的根目录,例如
coverage run --source=<project_root> -m unittest discover test -vb
答案 0 :(得分:0)
我认为您的期望是正确的:默认情况下,您不应该获得python安装库的统计信息。我正在测试我的命令,只能覆盖我的模块。使用标志-L我可以获得python安装模块的覆盖范围。您是否可以自定义安装覆盖范围?或者以某种方式在您的配置中设置标志?您使用的是什么版本的保险?从版本的历史记录来看,对于早于v3.0b的版本,此选项的默认值似乎是正确的。 如果你在没有-m unittest discover的情况下运行(只是执行其中一个测试),你还能得到相同的吗? 您可以尝试使用--debug = sys,以防它产生有用的信息。