我正在学习用Python进行测试,现在我正在使用pytest-cov。
我尝试运行以下命令:
pytest --cov=myProj tests/ --cov-report term-missing
测试完成后我得到了这样的报告:
----------- coverage: platform linux, python 3.6.7-final-0 -----------
Name Stmts Miss Cover Missing
----------------------------------------------------------------------------------------------
myProject/__init__.py 0 0 100%
myProject/alert.py 14 14 0% 1-21
myProject/api/__init__.py 1 0 100%
myProject/api/spaces/__init__.py 0 0 100%
myProject/api/spaces/admin.py 279 179 36% 154-223, 312-335, 351-398, 422-432, 505-515, 534-565, 591-697
myProject/api/spaces/global.py 89 66 26% 35-43, 47-69, 72-92, 96-124
myProject/api/spaces/inventory.py 79 79 0% 1-119
myProject/api/spaces/keyword.py 134 110 18% 33-42, 46-68, 72-93, 101-112, 116-134, 138-165, 168-190
有几件事让我对documentation中没有找到的报告感到困惑:什么是Stmts、Miss、Cover和Missing,如果Cover上的结果不是100%,则意味着我的代码仍然不好或什么...?
2条答案
按热度按时间bcs8qyzn1#
Stmts
是指代码中的 * 语句 * 的数量。Miss
是指尚未运行的语句数。Cover
是测试覆盖率,或(Stmts - Miss) / (Stmts) * 100
。Missing
包含Miss
语句的行号。如果覆盖率不是100%,则意味着测试未覆盖代码的某些部分,例如:
上述测试将仅进入
a > 0
分支,因此测试覆盖率为33%。高覆盖率并不总是好的(因为仅仅覆盖代码并不意味着所有的用例都得到了充分的测试),但是低覆盖率通常是不好的(因为这意味着您的测试甚至没有触及代码的一部分)。
t3psigkw2#
*Stmts-表示特定文件中的代码总行数。
*Miss-单元测试未覆盖的总行数。
*Cover-单元测试覆盖的所有代码行的百分比。
*缺失-未涵盖的代码行。