簡體   English   中英

解決了在python中運行unittest的過多方法所產生的混亂

[英]Solving the confusion generated by too many ways to run unittest in python

我正在嘗試實現一個完整而干凈的測試python包的方法,這個方法符合以下要求:

  • 在沒有設置的情況下在干凈的機器上執行測試(virtualenv)
  • 多個平台收集結果
  • 多個python解釋器收集結果
  • 代碼覆蓋率 (將多次執行的結果合並到一個報告中)
  • 能夠生成xml代碼覆蓋率報告,以便構建系統可以跟蹤這種變化隨時間的變化情況。
  • 能夠啟用基於平台的禁用測試
  • 在測試之前運行幾個命令,比如pep8或autopep8
  • 並行運行測試。

我使用了幾種方法: nose + pytesttox + pytest但最近發現pytest應該可以完成大部分工作。

主要問題是我無法找到關於何時使用一種方法或另一種方法更好的明確比較。

有人可以解釋這些並給出一些用例或這些配置的限制嗎? ......只是為了清楚說明何時采用某種方法。

最后我想要有這些選項:

  • quicktest - 在本地運行測試,必須在每次提交之前執行
  • fulltest - 完整測試,在所有可用平台上運行它們,在發布新版本之前必須完成

py.test完全滿足您的所有需求,與其他測試跑步者如鼻子相比,它是優秀的:

  • 具有依賴注入的燈具 - 無需復雜的oop進行測試設置
  • 簡單但功能強大的插件系統,有很多有用的插件 - 像pytest-xdist這樣的插件允許你根據需要在所有平台上進行測試,包括windows,pytest-cov做覆蓋,pytest-cache有助於只運行最后失敗的測試等等
  • 參數化允許您使用聲明性參數來使用一次寫入運行多次方法進行測試
  • 使用簡單的斷言語句與復雜的類似java的語法.assertEquals( http://pytest.org/latest/assert.html
  • 越來越多

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM