我的一個Python項目的代碼庫包含許多測試。這些測試足夠廣泛和寬敞,我稱之為“穩健”。我想知道它們到底有多強大,所以我設置了 coverage.py 工具,以及一個 codecov.io 帳戶。該項目有兩種類型的測試:一套單元測試,從一開始就用pytest運行 - 即沒有基于傳統的測試,并且夾具和鉤子被大量利用。unittestpytest每個模塊的內聯測試功能套件,使用簡單的定制測試運行程序編寫。這些看起來都是這樣的:# -*- coding: utf-8 -*-import sys # …etc# ?module code?def test(): from clu.testing.utils import inline @inline.precheck def show_some_initial_values(): """ Precheck function description """ # ?pre-check code? @inline def test_one(): """ Test one’s description """ # ?test code? @inline def test_two(): """ Test two’s description """ # ?test code? @inline.diagnostic def show_some_final_values(): """ Diagnostic function description """ # ?post-run diagnostic code? return inline.test(100) # runs test functions 100 times; # prechecks and diagnostics run onceif __name__ == '__main__': sys.exit(test())...他們輸出報告,如下所示:...內聯測試可以基于每個模塊運行,直接從編輯器中運行。它們還可以通過 nox 設置全部運行,該設置收集并運行定義內聯測試的所有模塊。所以現在,關于和 codecov.io - 將套件與這些工具集成非常容易。我對一個現成的文件做了一些調整,安裝了 codecov.io 插件,那就是 - 這些測試報告它們的覆蓋范圍 codecov.io 很好。coverage.pypytest.coveragercpytest我的問題是,如何集成內聯測試的覆蓋率報告?有沒有一種簡單的方法來配置以“理解”這些測試功能,或者內聯測試是否需要將其結果報告給覆蓋工具?coverage.py是否可以在文件中設置類似的東西,或者它是否更復雜?.coveragerc而且,我應該考慮任何其他工具,無論是額外的還是代替我當前使用的工具?
1 回答

慕標琳琳
TA貢獻1830條經驗 獲得超9個贊
Coverage.py 對測試一無所知。它所做的只是告訴你代碼的哪些部分是由某個程序運行的。通常,該程序是測試運行程序,但 coverage.py 并不在乎。
如果現在使用 運行測試,請將命令更改為 ,您將獲得數據。python mytestrunner.py
coverage run mytestrunner.py
添加回答
舉報
0/150
提交
取消