使用以下命令生成使用nosetest的覆盖率报告:
nosetests --exe --with-coverage --cover-html --cover-package=Mypackage Tests/
在我的测试中,我使用了一些类,几乎所有的类都被找到了,除了一个叫做:
的类TestCasesFilter
在尝试了一些问题之后,我发现当我将类重命名为其他东西时,例如OneTestCasesFilter,该类被添加到覆盖率报告中。 我们的命名约定要求我们在写入的数据库中的表之后命名该类,在本例中为TestCases。是否可以在不重命名类的情况下将类添加到coverage报告中?
我正在使用:
python 2.7.14
coverage 4.4.1
nose 1.3.7
答案 0 :(得分:0)
我的设置与您的设置略有不同,但我遇到了类似的问题。我在我的python包的根目录中有一个setup.cfg文件,如下所示:
[nosetests]
with-coverage=1
cover-xml=1
cover-xml-file=coverage.xml
cover-package=companyname
使用这个setup.cfg文件,我没有看到companyname / test_base.py出现在报告结尾的nosetests吐出的覆盖率报告中。然而,当我运行coverage report
时,我看到它出现了,所以我知道正在收集数据。
看the documentation我看到了几个可能的修复方案。我能够通过将cover-tests=1
添加到我的setup.cfg文件来解决此问题。文档将此选项描述为
--cover-tests
Include test modules in coverage report
看起来像鼻子使用什么算法来确定什么是“测试”不是很聪明,也许只看一下类名
由于您使用命令行传递选项,我认为您需要在调用nosetests时添加--cover-tests