繁体   English   中英

Pytest cov 不生成任何报告

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM