pytest測試實戰

pytest測試實戰 pdf epub mobi txt 電子書 下載2025

出版者:華中科技大學齣版社
作者:[美] Brian Okken
出品人:
頁數:240
译者:陸陽
出版時間:2018-8-1
價格:69.90元
裝幀:平裝
isbn號碼:9787568044424
叢書系列:
圖書標籤:
  • Python
  • pytest
  • 測試
  • fixture
  • 程序設計
  • 計算機
  • 插件
  • Python美女蛇
  • pytest
  • 測試
  • 自動化測試
  • Python
  • 軟件測試
  • 測試框架
  • 單元測試
  • 集成測試
  • 持續集成
  • 測試實戰
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

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的測試用例使用。

著者簡介

Brian Okken是一位有二十多年工作經驗的軟件測試工程師,他業餘時間錄製瞭Test & Code和Python Bytes兩個播客。

圖書目錄

前言
第1章 pytest入門 1
1.1 資源獲取 4
1.2 運行Pytest 5
1.3 運行單個測試用例 10
1.4 使用命令行選項 10
--collect-only選項 11
-k選項 11
-m選項 12
-x選項 13
--maxfail=num 15
-s與--capture=method 16
--lf(--last-failed)選項 16
--ff(--failed-first)選項 17
-v(--verbose)選項 17
-q(--quiet)選項 18
-l(--showlocals)選項 19
--tb=style選項 20
--duration=N選項 21
--version選項 22
-h(--help)選項 23
1.5 練習 24
1.6 預告 25
第2章 編寫測試函數 27
2.1 測試示例程序 27
本地安裝Tasks項目程序包 30
2.2 使用assert聲明 32
2.3 預期異常 35
2.4 測試函數的標記 36
完善冒煙測試 38
2.5 跳過測試 40
2.6 標記預期會失敗的測試 43
2.7 運行測試子集 45
單個目錄 45
單個測試文件/模塊 46
單個測試函數 47
單個測試類 47
單個測試類中的測試方法 48
用測試名劃分測試集閤 48
2.8 參數化測試 49
2.9 練習 56
2.10 預告 57
第3章 pytest Fixture 59
3.1 通過conftest.py共享fixture 60
3.2 使用fixture執行配置及銷毀邏輯 61
3.3 使用--setup-show迴溯fixture的執行過程 63
3.4 使用fixture傳遞測試數據 64
3.5 使用多個fixture 66
3.6 指定fixture作用範圍 68
修改Tasks項目的fixture作用範圍 70
3.7 使用usefixtures指定fixture 73
3.8 為常用fixture添加autouse選項 74
3.9 為fixture重命名 75
3.10 Fixture的參數化 77
3.11 參數化Tasks項目中的fixture 80
3.12 練習 83
3.13 預告 83
第4章 內置Fixture 85
4.1 使用tmpdir和tmpdir_factory 86
在其他作用範圍內使用臨時目錄 88
4.2 使用pytestconfig 90
4.3 使用cache 92
4.4 使用capsys 100
4.5 使用monkeypatch 102
4.6 使用doctest_namespace 106
4.7 使用recwarn 109
4.8 練習 110
4.9 預告 111
第5章 插件 113
5.1 尋找插件 114
5.2 安裝插件 114
從PyPI安裝 114
從PyPI安裝指定版本 115
從.tar.gz或.whl文件安裝 115
從本地目錄安裝 115
從Git存儲倉庫安裝 116
5.3 編寫自己的插件 116
5.4 創建可安裝插件 121
5.5 測試插件 125
5.6 創建發布包 129
通過共享目錄分發插件 130
通過PyPI發布插件 130
5.7 練習 131
5.8 預告 131
第6章 配置 133
6.1 理解pytest的配置文件 133
用pytest --help查看ini文件選項 135
插件可以添加ini文件選項 135
6.2 更改默認命令行選項 136
6.3 注冊標記來防範拼寫錯誤 136
6.4 指定pytest的最低版本號 138
6.5 指定pytest忽略某些目錄 138
6.6 指定測試目錄 139
6.7 更改測試搜索的規則 141
6.8 禁用XPASS 142
6.9 避免文件名衝突 143
6.10 練習 145
6.11 預告 145
第7章 pytest與其他工具的搭配使用 147
7.1 pdb:調試失敗的測試用例 147
7.2 coverage.py:判斷測試覆蓋瞭多少代碼 151
7.3 mock:替換部分係統 155
7.4 tox:測試多種配置 162
7.5 Jenkins CI:讓測試自動化 166
7.6 unittest:用pytest運行曆史遺留測試用例 173
7.7 練習 179
7.8 預告 180
附錄A 虛擬環境 181
附錄B Pip 183
附錄C 常用插件 187
C.1 改變測試流程的插件 187
pytest-repeat:重復運行測試 187
pytest-xdist:並行運行測試 189
pytest-timeout:為測試設置時間限製 190
C.2 改善輸齣效果的插件 191
pytest-instafail:查看錯誤的詳細信息 191
pytest-sugar:顯示色彩和進度條 192
pytest-emoji:為測試增添一些樂趣 193
pytest-html:為測試生成HTML報告 195
C.3 靜態分析用的插件 197
pytest-pycodestyle和pytest-pep8:Python代碼風格檢查 197
pytest-flake8:更多的風格檢查 197
C.4 Web開發用的插件 198
pytest-selenium:藉助瀏覽器完成自動化測試 198
pytest-django:測試Django應用 198
pytest-flask:測試Flask應用 199
附錄D 打包和發布Python項目 201
D.1 創建可安裝的模塊 201
D.2 創建可安裝的包 203
D.3 創建源碼發布包和Wheel文件 205
D.4 創建可以從PyPI安裝的包 209
附錄E xUnit Fixture 211
E.1 xUnit Fixture的語法 211
E.2 混閤使用pytest Fixture和xUnit Fixture 214
E.3 xUnit Fixture的限製 215
索引 216
· · · · · · (收起)

讀後感

評分

評分

評分

評分

評分

用戶評價

评分

把pytest涉及到的東西基本講到瞭。pytest比unittest更強大,更好用。 結閤官網上的源碼跑數據會更有感覺。

评分

花瞭一下午看瞭一遍,讀起來很流暢,翻譯的可以。寫測試對提高代碼質量很有幫助,我們公司也在做。

评分

從來沒接觸過測試,讀的時候有點不知所以然,章節安排有點點淩亂,因為開頭的內容很雜,第二章開始有點深。但是全書讀完以後發現沒那麼難,關鍵是fixture的作用、conftest.py和pytest.ini的作用和插件(hook函數講得太少)。還算可以~

评分

非常好的書,不過對hook的運行機製缺少講解,看一下源碼就可以理解瞭。

评分

翻譯的不錯,沒有讀起來彆扭的地方。 基本上把pytest相關的知識都提到瞭,基礎不好的人讀起來也不會睏難。相比之下,官網的文檔比較不人性化。 對於要上手pytest或想瀏覽pytest框架功能的人來說很閤適。

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有