我正在尝试为我的程序运行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
有人可以解释我,我做错了什么?
答案 0 :(得分:7)
您还没有说出所有文件的名称,所以我不确定具体的答案。但是--cov
的参数应该是模块名称,而不是文件名。因此,您需要py.test --cov=testcov.py
而不是py.test --cov=testcov
。
答案 1 :(得分:2)
py.test查找以test_
开头的函数。您应该相应地重命名测试功能。要申请保险,请执行py.test --cov
。如果您想要一个漂亮的HTML报告,该报告还会显示未涵盖哪些行,您可以使用py.test --cov --cov-report html
。
答案 2 :(得分:0)
默认情况下,py.test会查找与test_*.py
匹配的文件。您可以使用pytest.ini
顺便说一下。根据python样式指南PEP 8,它应该是test_suma
- 但它对py.test没有影响。
答案 3 :(得分:0)
最适合我的是:
async invokeSearch() {
this.setState({ searching: true })
const fuse = new Fuse(arrayOfData, { keys: [name: 'title'] })
const searchResults = await fuse.search(searchTerm)
this.setState({ searching: false })
}
在这种情况下,指定路径py.test mytests/test_mytest.py --cov='.'
会从覆盖率报告中删除不需要的文件。