我在为开源项目做贡献方面还很陌生,并且正在尝试获取一些覆盖率报告,以便找出需要更多/更好的测试的内容。但是,我无法获得测试的全部覆盖范围。这是为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。如何获得完整的覆盖率报告,包括经过测试的课程?
任何指导将不胜感激。
答案 0 :(得分:1)
我认为是因为您要从测试运行目录(即test_indexing.py
所在的位置)检查覆盖范围。
更好的方法是从根目录本身而不是从测试目录运行测试,它具有配置文件读取等全部优点。
关于您的问题,请尝试从根目录运行测试,然后尝试
pytest path/to/test/ --cov --cov-report=html