2013-04-17 33 views
6

我想實現測試Python包的完整和乾淨的方式,一個會適合如下因素要求:解決由太多的方法可以在Python運行單元測試所產生的混亂

  • 執行清潔機測試無需設置起來(的virtualenv)
  • 收集來自多個平臺
  • 收集來自多個Python解釋
  • 共同結果結果德覆蓋(合併來自多個執行結果到單個報告)
  • 能夠生成XML代碼覆蓋率報告,以便構建系統可以隨時跟蹤這個變化。
  • 能夠使禁用測試基於平臺的測試之前
  • 運行幾個命令,像PEP8或autopep8平行
  • 運行測試。

我用幾種方法:nose + pytesttox + pytest但最近發現,pytest應該能夠做到大部分的東西。

的主要問題是,我沒能找到有關時,它會更好地使用一種方法或另一種清晰的比較。

有人能解釋這些,並給這些配置的一些使用情況或限制? ......只是爲了清楚什麼時候採用某種方法。

最後,我也想有以下選項:

  • quicktest - 本地運行測試,每個commmit
  • fulltest前一絕 - 全面測試,在所有可用的平臺上運行他們的必經之路製作新版本之前
+1

如果pytest滿足您的所有需求,爲什麼你會考慮使用不同的配置?當然,這將是最簡單的。 – pfctdayelise

回答

1

py.test涵蓋了所有您的需求完美 它的利弊比較其他測試運行一樣的鼻子:

  • 燈具與依賴注入 - 消除了測試設置
  • 簡單但功能強大,有很多有用的插件的插件系統需要複雜的空中接力的 - 插件,像pytest-xdist讓你在所有平臺上進行測試,因爲你需要,包括pytest-cov覆蓋範圍,pytest-cache有助於僅運行最後一次失敗的測試等。
  • 參數化允許您使用一次寫入運行多個方法進行使用聲明性參數的測試
  • 使用簡單斷言語句VS複雜類Java語法.assertEquals(http://pytest.org/latest/assert.html
  • 越來越
相關問題