2016-03-17 80 views
0

我試圖爲我的程序運行py.test cov,但我仍然有一個信息:testFile.txt sCoverage.py warning: No data was collected. 即使在代碼中仍然是未經過測試的函數(在我的示例函數差異)。以下是我測試命令py.test --cov=testcov.py的代碼示例。我正在使用python 2.7.9Pytest cov不會生成任何報告

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

默認情況下,py.test會查找匹配test_*.py的文件。您可以使用pytest.ini

Btw進行定製。根據python樣式指南PEP 8它應該是test_suma - 但它對py.test沒有影響。

0

你還沒有說過你的所有文件都被命名了,所以我不知道確切的答案。但--cov的參數應該是模塊名稱,而不是文件名。所以,而不是py.test --cov=testcov.py,你想要py.test --cov=testcov

0

py.test尋找以test_開頭的函數。您應該相應地重命名您的測試功能。要應用覆蓋範圍,請執行py.test --cov。如果你想要一個漂亮的HTML報告,也可以告訴你哪些行沒有被覆蓋,你可以使用py.test --cov --cov-report html