您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何剖析Python 測試框架,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
許多的程序員會建議使用Python 測試框架,而不是手工測試是否相等的 assert 語句,在這種情況下測試會使用 self 而不是忽略它,對于熟悉 Python 語言的開發人員,不如 Python 的操作符那么明確。
最近出現了行業級的 Python 測試框架,這意味著 Python 測試可以編寫得更簡潔、更統一,能夠產生更好的結果報告。這里介紹比較先進的測試框架并討論它們的基本特性。Python 測試領域的蠻荒時代結束了。
但是現在,這種混亂局面終于要結束了。社區中已經出現了幾種出色的測試解決方案,它們為數百個流行的項目的測試套件提供約定和通用標準。小編將介紹三種流行的測試框架,討論新一代工具鼓勵的簡單測試風格。
第二篇文章發現和選擇測試 討論更大的問題:這些框架如何自動地發現和分類項目的測試。***一篇文章用 Python 測試框架生成測試報告 討論這些框架為查看測試結果提供的強大特性。
通過學習這三種框架的通用習慣做法,您不但可以更好地理解其他程序員編寫的 Python 包,還可以為自己的應用程序構建優雅、強大的測試套件。候選框架:三種 Python 測試框架有三種 Python 測試框架是目前使用最為廣泛的。下面按時間次序簡要介紹它們:
通常,從事 Zope 項目的開發人員就像是早期的拓荒者。他們需要以一種統一的方式在大型代碼基上發現和運行測試,為此開發了 zope.testing 包,這個包現在仍然得到廣泛使用。
zope.testing 包只支持 unittest 和 doctest 等傳統 Python 測試風格,而不支持更現代的框架支持的簡化風格。但是,它提供一個強大的分層系統,在這種系統中包含測試的目錄可以依賴于通用的設置代碼,設置代碼為層(而不是每個測試)創建一個運行測試所需的環境。
py.test2004 年,Holger Krekel 把他的 std 包改名為 ‘py’,因為原來的名稱常常與 Python 附帶的標準庫混淆。盡管這個包包含另外幾個子包,但是現在***的部分只有它的 py.test 框架。
py.test 框架建立了 Python 測試的新標準,目前許多開發人員都采用這種標準。它為編寫測試提供了優雅的符合Python 測試框架的習慣做法,讓開發人員能夠以非常緊湊的風格編寫測試套件。
nose 項目是于 2005 年發布的,也就是 py.test 改名后的一年。它是由 Jason Pellerin 編寫的,支持與 py.test 相同的測試習慣做法,但是這個包更容易安裝和維護。盡管 py.test 在某些方面有所進步,目前也很容易安裝,但是 nose 仍然保持了易用性方面的聲譽。在 Python 大會上,常常會看到開發人員穿著黑色 T 恤衫。
上面印著 nosetests 命令,后面是表示測試成功的點號。有意思的是,隨著 nose 的發展,在項目郵件列表上常常看到開發人員向項目負責人詢問他們的項目什么時候可以轉換到 nose。
在這三種框架中,nose 看起來會成為標準,py.test 的用戶群比較小,但是很忠誠,zope.testing 只在基于 Zope 框架的項目中受歡迎。但是,這三種框架都得到積極的維護,各有一些獨特的特性。建議您了解它們的特性和差異,選擇適合自己項目的框架。
py.test 框架接受普通的 Python 函數作為測試,而不要求把測試放在更大更重型的測試類中,這開啟了 Python 測試的新時代。因為 nose 框架支持相同的習慣做法,所以這些模式很可能越來越流行。假設希望檢查 Python 真假值 True 和 False 是否真的
# test_old.py - The old way of doing things import unittest class TruthTest(unittest.TestCase): def testTrue(self): assert True == 1 def testFalse(self): assert False == 0 if __name__ == '__main__': unittest.main()
看到了嗎?這么多代碼只是為了支持兩行測試代碼!首先,代碼需要一個 import 語句,這與要測試的代碼完全無關,因為測試本身簡單地忽略模塊,只使用內置的 Python 值,比如 True 和 False。
另外,要創建一個類,但是它不支持或增強測試,因為測試實際上沒有使用它們的 self 參數做任何事情。需要兩行固定不變的代碼,這樣才能從命令行運行這個測試。
上述就是小編為大家分享的如何剖析Python 測試框架了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。