我有一個python程序,它通過多次運行不同輸入來測試,並將輸出與參考結果進行比較。如何在多個Python腳本運行中獲得組合代碼覆蓋率
我想獲得所有測試組合的代碼覆蓋率,所以我可以看到是否有額外的輸入集應該用來獲得完整的覆蓋率。我已經看過覆蓋範圍模塊,但無法弄清楚我如何才能做到這一點。
任何線索?
我有一個python程序,它通過多次運行不同輸入來測試,並將輸出與參考結果進行比較。如何在多個Python腳本運行中獲得組合代碼覆蓋率
我想獲得所有測試組合的代碼覆蓋率,所以我可以看到是否有額外的輸入集應該用來獲得完整的覆蓋率。我已經看過覆蓋範圍模塊,但無法弄清楚我如何才能做到這一點。
任何線索?
Ned Batchelder的coverage.py有一個feature to combine the results of multiple runs,這似乎正是你在找什麼。
如果在同一臺機器上運行,請使用-a
選項運行該選項,該選項可在多個調用之間累積覆蓋率數據。
例子:
coverage erase
coverage run -a <command> [arguments, ...]
repeat coverage run -a <command> ... as many times as needed.
coverage report
coverage html
DOC:http://coverage.readthedocs.org/en/latest/cmd.html#data-file
希望這有助於。
是的,這是完全正確的。您可以使用它跨多個數據集,跨多個Python版本或多個依賴項選擇(例如,不同版本的中間件或支持模塊)運行。您可以在shell腳本中「編排」多個測試運行,但您可以做得更好:[tox](https://tox.readthedocs.org/en/latest/)測試運行器將自動創建原始虛擬環境並在那些運行測試;強烈建議超出最簡單的測試設置。 –