pytest结果是什么意思?
What is pytest result mean?
我正在 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%,这意味着我的代码仍然很糟糕或者什么..?
Stmts
指的是代码中语句的数量。
Miss
指的是没有被运行.
的语句数
Cover
是测试覆盖率,或者(Stmts - Miss) / 100
.
Missing
包含 Miss
语句的行号。
如果覆盖率不是 100%,这意味着您的代码中有您的测试没有覆盖的部分,例如:
def f(a, b):
if a > 0:
return a
elif a == 0:
return 0
else:
return b
def test_f():
assert f(10, 10)
以上测试只会进入 a > 0
分支,因此测试覆盖率为 33%。
高覆盖率并不总是好的(因为仅覆盖代码并不意味着所有情况都得到充分测试),但低覆盖率通常很糟糕(因为这意味着您的测试甚至没有触及代码的某些部分)。
- Stmts - 表示您在特定文件中的代码总行数。
- Miss - 单元测试未覆盖的总行数。
- Cover - 单元测试覆盖的所有代码行的百分比。
- 缺少 - 未涵盖的代码行。
我正在 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%,这意味着我的代码仍然很糟糕或者什么..?
Stmts
指的是代码中语句的数量。
Miss
指的是没有被运行.
Cover
是测试覆盖率,或者(Stmts - Miss) / 100
.
Missing
包含 Miss
语句的行号。
如果覆盖率不是 100%,这意味着您的代码中有您的测试没有覆盖的部分,例如:
def f(a, b):
if a > 0:
return a
elif a == 0:
return 0
else:
return b
def test_f():
assert f(10, 10)
以上测试只会进入 a > 0
分支,因此测试覆盖率为 33%。
高覆盖率并不总是好的(因为仅覆盖代码并不意味着所有情况都得到充分测试),但低覆盖率通常很糟糕(因为这意味着您的测试甚至没有触及代码的某些部分)。
- Stmts - 表示您在特定文件中的代码总行数。
- Miss - 单元测试未覆盖的总行数。
- Cover - 单元测试覆盖的所有代码行的百分比。
- 缺少 - 未涵盖的代码行。