成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

4種出色的Python測試框架!

譯文
開發 前端
為你的Python應用程序編寫、運行和維護單元測試的方法不只一種。本文介紹了四種出色的方法。

【51CTO.com快譯】為你的Python應用程序編寫、運行和維護單元測試的方法不只一種。本文介紹了四種出色的方法。

p1.jpg

企業軟件需要測試,如同建筑物需要消防和安全檢查。如果你知道某些電氣狀況或結構問題可能導致災難,不會只尋找一次,而是會反復尋找。同樣,如果你想防止應用軟件中的某些問題或狀況,為此編寫測試可以確保它們永遠不會進入到生產環境。

對于像Python這樣的動態語言來說,測試尤為重要。如果是動態語言,大批的錯誤僅在運行時出現。可靠的測試套件有助于揪出這些問題,為繼承代碼庫的人提供同樣揪出問題的方法。

默認情況下,Python隨帶自己的單元測試框架,該框架既實用又廣泛使用。但還有另外諸多方法,每種方法對于如何構建和維護單元測試有各自的理念。下面介紹了默認方法unittest以及三種重要的替代方法。

unittest和doctest

unittest是Python標準庫附帶的默認測試框架,用于為Python本身創建測試套件。 unittest不像一些第三方測試框架那樣覆蓋廣泛,它本來就不是要這樣——它提供了足以為大多數項目編寫可靠的單元測試的功能。用過JUnit測試框架的Java開發人員應該熟悉unittest。

要創建測試套件,你要創建從unittest.TestCase派生的Python類,測試是那些類中的函數。測試可能是簡單的相等或不相等斷言,也可能是較為復雜的。比如說,assertRaises測試確保為特定測試引發特定異常。

測試可以分組為單個文件,也可以跨多個文件隔開、自動發現然后加以執行。你還可以為每個測試組提供fixture(安裝和拆卸例程),指定在特定條件下跳過的測試,并控制測試的執行行為。

使用unittest的優點是它眾所周知。就因為其他Python程序員非常熟悉測試套件的編寫方式,就很難搞錯unittest。

doctest也是Python標準庫附帶的,是補充模塊。Doctest尋找Python文件中格式類似Python交互式會話的注釋,并嘗試運行這些注釋中包含的命令以查看結果是否匹配。這樣一來,可以驗證函數的文檔字符串中的示例輸出以及函數的行為。

請注意,doctest最適合輸入輸出在控制臺中一目了然的簡單函數的測試,以及不需要大量安裝或拆卸即可生成結果的測試。如果你嘗試對復雜函數執行doctest,最終可能得到太過笨拙而沒有用處的doctest示例。

pytest

pytest項目可以完全替換或增強unittest。Pytest運用了一種不同的理念來測試編寫,從而使開發人員無需大量的腳手架代碼,即可快速為項目實施小型測試套件。隨著項目不斷擴大,pytest可以擴大規模進行匹配,允許更多的測試功能可以逐漸添加上去。

pytest測試一開始是遵循模塊中某種命名約定的緊湊函數,而不是現有測試類型類的子類。通過從命令行在模塊上運行pytest或在代碼內調用pytest來調用測試。你可以創建pytest fixture來安裝和拆卸測試條件,并根據需要對這些fixutre規定寬泛或狹窄的范圍(比如從整個測試會話范圍到僅函數范圍)。

你可以添加的選項數量眾多且功能強大。成百上千個pytest插件讓你可以將測試與許多第三方服務和操作集成起來。最后,unittest和nose測試套件也可以作為測試過程的一部分來運行,那樣你可以將pytest與現有套件集成起來,不必丟棄它們、從頭開始。

nose和nose2

nose及后續者nose2擴展了用unittest編寫的測試,使它們更易于運行。nose本身不再加以維護;nose2延續這個項目,與Python 3兼容,功能上有一些變化,但基本理念一樣。我們在這里主要介紹nose2。

nose2在兩個主要方面有別于unittest:它擁有插件架構,并使用.ini樣式的配置文件來控制測試如何運行。默認情況下,提供并啟用了許多nose2插件。.ini文件包括諸多設置,比如測試運行期間探查哪些目錄、使用哪些插件。因此,可以對一組具有罕見行為的nose2測試進行精確的腳本編寫,可以毫不費力地重復使用。

nose2運行時,它查找以名稱test開頭的模塊,還有從unittest.TestCase派生的任何類,因此它可以運行通過pytest或unittest范式設計的測試。當模塊以獨立的方式加以執行時,nas2測試也可以配置成運行(unittest和pytest也可以做到這樣)。

請注意,nose2可能不是你首次嘗試測試Python應用程序的優先選擇,因為它假設你在創建測試方面有一定的經驗。你需要先試一試unittest。

behave

behave是使用“行為驅動開發”(BDD)范式的許多面向Python的測試框架之一。你可以用簡單的英語“功能文件”描述測試的預期行為,并將測試本身寫在另一個文件中,然后執行behave,觀察測試運行情況,通過英語描述提供了注釋。

與通常需要先編寫代碼的測試編寫方法相比,這可能顯得更死板僵硬。但是BDD方法旨在使測試更容易為編寫測試的開發人員進行推理,并且使其他人(包括最終用戶和其他開發人員)更容易理解測試的用途和原因。behave非常適合必須謹小慎微的項目。

behave讓你可以通過指定能添加到功能文件中個別案例的“標簽”或元數據,從命令行選擇性地運行測試。還可以定義精細化的逐步行為,比如安裝和拆卸程序。behave測試還可以與Django和Flask Web框架集成起來。

還有其他幾種面向Python的BDD框架,比如Lettuce和Radish,但behave是使用最廣泛的框架之一。

原文標題:4 Python test frameworks to crush your bugs,作者:Serdar Yegulalp

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:張燕妮 來源: 51CTO
相關推薦

2019-01-21 09:00:00

Python 開發編程語言

2021-03-22 08:00:00

PHP開發框架

2009-07-22 14:49:18

ibmdwPython測試

2020-12-28 05:56:57

Monorepo代碼庫工具

2024-11-05 08:28:50

2010-03-01 17:25:12

Python 測試框架

2019-10-08 10:28:36

Python程序員鏡音雙子

2010-02-24 17:58:28

Python 測試框架

2010-02-26 17:44:40

Python測試框架

2010-02-23 11:26:56

Python 測試框架

2023-03-22 18:17:49

Python框架測試自動化

2020-06-05 08:09:01

Python強化學習框架

2011-07-09 10:49:07

筆記本評測

2023-09-01 09:21:03

Python自動化測試

2022-08-19 11:19:49

單元測試Python

2018-04-09 09:00:00

Java測試框架庫JUnit

2010-08-27 09:11:27

Python單元測試

2019-12-27 18:07:53

Python網絡爬蟲HTML

2010-02-23 10:50:11

Python 測試框架

2020-12-01 00:02:16

開發人員用戶體驗高層管理人員
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲成人一区二区三区 | 91视频免费 | 色天堂视频 | 九九热热九九 | 国产成人精品一区二区三区在线观看 | 亚洲激情综合网 | 欧美精品一区二区三区在线 | 操操操操操 | 国产亚洲一级 | 国产一级成人 | 中文字幕精品一区二区三区精品 | 久操伊人 | 伊人久久在线观看 | 亚洲三区视频 | 中文字幕在线播放不卡 | 一区视频 | 欧美看片 | 二区不卡| 69av片| 黄色片大全在线观看 | 亚洲激情综合 | 激情国产| 中文字幕第一页在线 | 在线色网| 日本精品在线一区 | 亚洲xx在线 | 天天干成人网 | 深爱激情综合 | 天天久久 | 国产精品国产成人国产三级 | 国产精品久久久久久久久久 | 欧美日韩一区二区三区视频 | 日韩av中文 | 水蜜桃亚洲一二三四在线 | 日韩国产欧美一区 | 日韩在线免费视频 | 国产91在线观看 | 久久亚洲一区二区 | 日本一区二区三区免费观看 | 久久精品国产久精国产 | 老牛影视av一区二区在线观看 |