![](/img/trans.png)
[英]How can I use pytest-cov to both generate a coverage report and also print to terminal?
[英]Pytest cov does not generate any report
我正在尝试为我的程序运行 py.test cov,但我仍然有一个信息: testFile.txt sCoverage.py warning: No data was collected.
即使在代码中仍然是未经测试的函数(在我的示例函数 diff 中)。 下面是我测试命令py.test --cov=testcov.py
的代码py.test --cov=testcov.py
。 我正在使用python 2.7.9
def suma(x,y):
z = x + y
return z
def diff(x,y):
return x-y
if __name__ == "__main__":
a = suma(2,3)
b = diff(7,5)
print a
print b
## ------------------------TESTS-----------------------------
import pytest
def testSuma():
assert suma(2,3) == 5
有人可以解释一下,我做错了什么?
您还没有说出所有文件的名称,所以我不确定确切的答案。 但是--cov
的参数应该是模块名,而不是文件名。 因此,而不是py.test --cov=testcov.py
,你想py.test --cov=testcov
。
对我有用的是:
py.test mytests/test_mytest.py --cov='.'
指定路径, '.'
在这种情况下,从覆盖率报告中删除不需要的文件。
py.test查找以启动功能test_
。 您应该相应地重命名您的测试函数。 要应用覆盖率,您可以执行py.test --cov
。 如果你想要一个漂亮的 HTML 报告,同时显示哪些行没有被覆盖,你可以使用py.test --cov --cov-report html
。
默认情况下 py.test 查找匹配test_*.py
。 您可以使用pytest.ini对其进行自定义
顺便说一句。 根据 python 风格指南PEP 8,它应该是test_suma
- 但它对 py.test 没有影响。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.