2016-07-07 104 views
2

Coverage.py with Ned Batchelder蟒蛇&測試播客,布賴恩和斯內德簡要討論一下,如果你需要使用覆蓋運行測試,最好是從coverage.py執行運行測試而不是調用帶有覆蓋範圍的測試跑步者。爲什麼是這樣,有什麼不同?運行從coverage.py VS運行覆蓋率從測試跑步測試


把一些情況下這個:我目前使用nose測試運行,並與nosetests命令行工具的幫助下與--with-coverage option執行測試:

$ nosetests --with-coverage --cover-html 

我應該通過做改爲coverage run -m

$ coverage run -m nose 
$ coverage report 
+1

我不知道這是否正確(所以我不會將它作爲答案發布),但我的直覺猜測是,如果您直接使用覆蓋範圍,那麼您關注覆蓋範圍,鼻子和你沒有插件的附加依賴。減少耦合,減少一個跟蹤版本。 – mwchase

+1

「調用帶覆蓋的測試跑步者」 - 你沒有清楚你正在談論的測試跑步者(也可能他們不在播客中 - 我沒有列出)。我想在測試跑步者的情況下,你相信測試跑步者可以在正確的時間啓動覆蓋機器(例如在導入測試內容之前)。如果您直接調用覆蓋範圍,那麼您知道所有事情的設置都是爲了使用覆蓋範圍,並且每行都將按照您的要求進行跟蹤。 – mgilson

回答

1

我想我是唯一有資格回答這個問題:)

mwchase和mgilson有它的權利在他們的評論:使用插件,你是根據該插件的行爲是正確和可以理解的意思。以有用的名義,插件會有自己的邏輯,這些邏輯在編寫時可能是最好的想法,但測試運行者和/或coverage.py可能在此期間發生了變化。插件往往不像其他組件那樣維護良好。如果你能避免它們,你就不需要考慮一件事。

真實情況:我首先在.coveragerc配置文件中添加支持的原因是因爲我想爲coverage.py添加功能,並且不想等待插件UI更新以支持它們。

+0

出於某種原因,大多數「如何使用覆蓋鼻子/ pytest」命令在互聯網上示範如何使用帶有覆蓋插件的跑步者,並沒有提到你也可以使用「覆蓋跑步」,而且它通常是一個更好的方法。再次感謝! – alecxe