91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Python 測試框架unittest和pytest

發布時間:2020-10-31 00:15:19 來源:億速云 閱讀:126 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關使用Python 測試框架unittest和pytest,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

一、Unittest

Unittest是Python標準庫中自帶的單元測試框架,Unittest有時候也被稱為PyUnit,就像JUnit是Java語言的標準單元測試框架一樣,Unittest則是Python語言的標準單元測試框架。

Unittest支持自動化測試,測試用例的初始化、關閉和測試用例的聚合等功能,它有一個很重要的特性:它是通過類(class)的方式,將測試用例組織在一起。

示例:

使用Python 測試框架unittest和pytest

運行結果

使用Python 測試框架unittest和pytest

注: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多個各式各樣的插件,社區繁榮

示例:

使用Python 測試框架unittest和pytest

執行結果:

使用Python 測試框架unittest和pytest

三、Unittest vs Pytest

unittestpytest
用例編寫規則1)測試文件必須先import unittest

2)測試類必須繼承unittest.TestCase

3)測試方法必須以“test_”開頭

4)測試類必須要有unittest.main()方法

1)測試文件名必須以“test_”開頭或者"_test"結尾(如:test_ab.py)

2)測試方法必須以“test_”開頭

3)測試類命名以"Test"開頭

用例分類執行默認執行全部用例,也可以通過加載testsuit,執行部分用例可以通過@pytest.mark來標記類和方法,pytest.main加入參數("-m")可以只運行標記的類和方法
用例前置和后置提供了setUp/tearDown,只能針對所有用例
     pytest中的fixture顯然更加靈活。可以任意自定義方法函數,只要加上@pytest.fixture()這個裝飾器,那么被裝飾的方法就可以被使用
參數化需依賴ddt庫使用@pytest.mark.parametrize裝飾器
斷言
     很多斷言格式(assertEqual、assertIn、assertTrue、assertFalse)
只有assert一個表達式,用起來比較方便
報告使用HTMLTestRunnerNew庫有pytest-HTML、allure插件
失敗重跑無此功能pytest支持用例執行失敗重跑,pytest-rerunfailures插件

總結:

總體來說,unittest用例格式復雜,兼容性無,插件少,二次開發方便。pytest更加方便快捷,用例格式簡單,可以執行unittest風格的測試用例,無須修改unittest用例的任何代碼,有較好的兼容性。pytest插件豐富,比如flask插件,可用于用例出錯重跑,還有xdist插件,可用于設備并行執行,效率更高。

以上就是使用Python 測試框架unittest和pytest,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

廊坊市| 朔州市| 沧州市| 闵行区| 藁城市| 贵德县| 政和县| 攀枝花市| 贵定县| 营口市| 广州市| 祥云县| 尚义县| 涿州市| 阿巴嘎旗| 稻城县| 崇信县| 西乌珠穆沁旗| 三门峡市| 东源县| 儋州市| 南雄市| 象山县| 永济市| 积石山| 新巴尔虎左旗| 监利县| 林甸县| 鄂尔多斯市| 泊头市| 江油市| 文水县| 屯昌县| 抚州市| 边坝县| 本溪| 清新县| 武乡县| 阳东县| 镇远县| 新丰县|