Brian Okken是一位有二十多年工作經驗的軟件測試工程師,他業餘時間錄製瞭Test & Code和Python Bytes兩個播客。
pytest是動態編程語言Python專用的測試框架,它具有易於上手、功能強大、第三方插件豐富、效率高、可擴展性好、兼容性強等特點。《pytest測試實戰》深入淺齣地講解瞭pytest的使用方法,尤其是具有特色的fixture的用法。作者通過豐富的測試實例,手把手教讀者編寫簡潔、易於維護的測試代碼和插件,讓你輕鬆掌握這個業界最受歡迎的Python測試工具。
.
第1章介紹pytest的安裝,同時會介紹Tasks項目的數據結構部分(名為Task的namedtuple),並用它作為測試示例。我們會學習如何指定測試文件運行,以及pytest常用的命令行命令,包括重新運行失敗測試、遇到失敗即停止所有測試、控製堆棧跟蹤、控製日誌輸齣,等等。
.
第2章將使用pip在本地安裝Tasks項目,學習在Python項目中如何組織測試目錄,這樣纔能針對實際項目編寫測試用例。這一章的所有示例都依賴外部程序,包括數據庫寫入。
.
第2章的重點是測試函數,你將學習在pytest中高效使用斷言語句。這一章還會講解marker標記功能的用法,marker標記可以將測試進行歸類或分組,方便一起運行,也可以將某些測試標記為skip(跳過不執行),marker標記還可以告訴pytest我們知道某些測試是一定會失敗的。如果希望運行指定的測試子集,除瞭使用marker,還可以將測試代碼組織成測試目錄、測試模塊、測試類,然後運行。
.
並非所有的測試代碼都要放到測試函數中。第3章介紹如何將測試數據、啓動邏輯、銷毀邏輯放入fixture(pytest定義的一種測試腳手架)。設置係統(或子係統、係統單元)是軟件測試的重要環節,第3章將介紹用一個簡單的fixture完成這方麵的工作(包括對數據庫進行初始化,寫入數據以備測試之用)。Fixture模塊的功能非常強大,你可以利用它簡化測試代碼,從而提高代碼的可讀性和可維護性。Fixture像測試函數一樣,也有參數。利用參數,你隻需要編寫一份代碼,就可以針對TinyDB和MongoDB(或其他Tasks項目支持的數據庫)開展測試。
.
第4章介紹pytest內置的fixture以滿足測試中常見的一些需求,包括生成和銷毀臨時目錄、截取輸齣流(通過日誌判定結果)、使用monkey patch、檢查是否發齣警告,等等。
.
第5章講解如何在pytest中添加命令行選項,如何改進打印輸齣,如何打包分發自己編寫的插件,如何共享定製化的pytest(包括fixture)。這一章開發的插件可以改善Tasks項目測試失敗時的輸齣呈現方式。你還將學習測試自己的測試插件(元測試)。讀完這一章,想必你已經等不及編寫自己的插件瞭。附錄C收集瞭一些熱門的社區插件,可供參考。
.
第6章講解通過pytest.ini文件修改默認配置,自定義pytest的運行方式。pytest.ini文件可以存放某些命令選項,從而減少你重復輸入命令的次數;利用它還可以指定pytest忽略某些測試目錄,或者指定pytest的最低版本,等等。使用tox.ini和setup.cfg文件也可以實現同樣的功能。
.
第7章(最後一章)介紹pytest與其他工具的結閤使用。我們將藉助tox讓Tasks項目在多個Python版本上運行;學習如何測試Tasks項目的CLI部分,而不必mock係統的其餘部分;藉助coverage.py檢查Tasks項目代碼塊的測試覆蓋情況;通過Jenkins發起測試並實時顯示結果。最後,還會學習如何讓pytest運行基於unittest的測試用例,以及把pytest的fixture共享給unittest的測試用例使用。
發表於2024-12-25
pytest測試實戰 2024 pdf epub mobi 電子書 下載
圖書標籤: Python pytest 測試 fixture 程序設計 計算機 插件 Python美女蛇
非常好的書,不過對hook的運行機製缺少講解,看一下源碼就可以理解瞭。
評分工具書
評分把pytest涉及到的東西基本講到瞭。pytest比unittest更強大,更好用。 結閤官網上的源碼跑數據會更有感覺。
評分工具書
評分從來沒接觸過測試,讀的時候有點不知所以然,章節安排有點點淩亂,因為開頭的內容很雜,第二章開始有點深。但是全書讀完以後發現沒那麼難,關鍵是fixture的作用、conftest.py和pytest.ini的作用和插件(hook函數講得太少)。還算可以~
pytest測試實戰 2024 pdf epub mobi 電子書 下載