一、Unittest
Unittest是Python標準庫中自帶的單元測驗框架,Unittest有時候也被稱為PyUnit,就像JUnit是Java語言的標準單元測驗框架一樣,Unittest則是Python語言的標準單元測驗框架,
Unittest支持自動化測驗,測驗用例的初始化、關閉和測驗用例的聚合等功能,它有一個很重要的特性:它是通過類(class)的方式,將測驗用例組織在一起,
示例:

執行結果:

注:unittest有一個關聯模塊unittest2,但unittest2僅適用于Python 2.4-2.6,這是由于從Python 2.7開始,unittest增加一些新的特性,為了在老的版本中支持這些特性,所以提供了unittest2這個庫,但對于Python 2.7及之后的版本,unittest是唯一的,本次示例中使用的為python2.7,
二、Pytest
Pytest是Python的另一個第三方單元測驗庫,它的目的是讓單元測驗變得更容易,并且也能擴展到支持應用層面復雜的功能測驗,
pytest的特性有:
- 支持用簡單的assert陳述句實作豐富的斷言,無需復雜的self.assert*函式
- 自動識別測驗模塊和測驗函式
- 模塊化夾具用以管理各類測驗資源
- 對 unittest 完全兼容,對 nose基本兼容
- 支持Python3和PyPy3
- 豐富的插件生態,已有300多個各式各樣的插件,社區繁榮
示例:

執行結果:
三、Unittest vs Pytes

總結:
總體來說,unittest用例格式復雜,兼容性無,插件少,二次開發方便,pytest更加方便快捷,用例格式簡單,可以執行unittest風格的測驗用例,無須修改unittest用例的任何代碼,有較好的兼容性,pytest插件豐富,比如flask插件,可用于用例出錯重跑,還有xdist插件,可用于設備并行執行,效率更高,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/376881.html
標籤:其他
