Ziv*_*iva 3 python unit-testing code-coverage pytest python-2.7
我正在尝试为我的程序运行py.test cov,但是我仍然有一个信息:testFile.txt sCoverage.py warning: No data was collected.
即使在代码中仍然是未测试的函数(在我的示例diff中)。下面是测试命令的代码示例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
Run Code Online (Sandbox Code Playgroud)
有人可以解释我,我在做什么错吗?
Ned*_*der 10
您尚未说出所有文件的名称,所以我不确定确切的答案。但是to的参数--cov
应该是模块名称,而不是文件名。因此py.test --cov=testcov.py
,您想要的不是py.test --cov=testcov
。
对我有用的是:
py.test mytests/test_mytest.py --cov='.'
Run Code Online (Sandbox Code Playgroud)
'.'
在这种情况下,指定路径会从覆盖率报告中删除不需要的文件。
py.test寻找以开头的函数test_
。您应该相应地重命名测试功能。要应用承保范围,请执行py.test --cov
。如果您想要一个不错的HTML报告,还可以向您显示未覆盖的行,则可以使用py.test --cov --cov-report html
。
小智 0
默认情况下 py.test 查找匹配的文件test_*.py
。您可以使用pytest.ini进行自定义
顺便提一句。根据 python 风格指南PEP 8它应该是test_suma
- 但它对 py.test 没有影响。
归档时间: |
|
查看次数: |
5138 次 |
最近记录: |