Python覆盖率报告仅涵盖测试文件

时间:2020-03-12 16:16:14

标签: python unit-testing pytorch pytest code-coverage

我在为开源项目做贡献方面还很陌生,并且正在尝试获取一些覆盖率报告,以便找出需要更多/更好的测试的内容。但是,我无法获得测试的全部覆盖范围。这是为pytorch

例如,假设我要获取test_indexing_py的覆盖率报告。

我运行命令:

pytest test_indexing.py --cov=../ --cov-report=html

结果:

================================================= test session starts =================================================
platform win32 -- Python 3.7.4, pytest-5.2.1, py-1.8.0, pluggy-0.13.0
rootdir: C:\Projects\pytorch
plugins: hypothesis-5.4.1, arraydiff-0.3, cov-2.8.1, doctestplus-0.4.0, openfiles-0.4.0, remotedata-0.3.2
collected 62 items

test_indexing.py ............................s.................................                                  [100%]

----------- coverage: platform win32, python 3.7.4-final-0 -----------
Coverage HTML written to dir htmlcov


=========================================== 61 passed, 1 skipped in 50.43s ============================================

好吧,看起来测试已经运行了。现在,当我检查html coverage report时,我只获得测试文件的覆盖率,而没有获得测试类的覆盖率(测试按覆盖率百分比排序)。

如您所见,我仅覆盖test_indexing.py。如何获得完整的覆盖率报告,包括经过测试的课程?

任何指导将不胜感激。

1 个答案:

答案 0 :(得分:1)

我认为是因为您要从测试运行目录(即test_indexing.py所在的位置)检查覆盖范围。

更好的方法是从根目录本身而不是从测试目录运行测试,它具有配置文件读取等全部优点。

关于您的问题,请尝试从根目录运行测试,然后尝试

  • pytest path/to/test/ --cov --cov-report=html