《帶你裝B,帶你飛》pytest修煉之路1- 簡介和環境準備
1. pytest簡介
pytest是python的一種單元測試框架,與python自帶的unittest測試框架類似,但是比unittest框架使用起來更簡潔,效率更高。根據pytest的官方網站介紹,它具有如下特點:
- 非常容易上手,入門簡單,文件豐富,文件中有很多例項可以參考
- 能夠支援簡單的單元測試和複雜的功能測試
- 支援引數化
- 執行測試過程中可以將某些測試跳過(skip),或者對某些預期失敗的case標記成失敗
- 支援重複執行(rerun)失敗的case
- 支援執行由nose, unittest編寫的測試case
- 可生成html報告
- 方便的和持續整合工具jenkins整合
- 可支援執行部分用例
- 具有很多第三方外掛,並且可以自定義擴充套件
2. 安裝pytest
pytest是python語言的一個測試的第三方的庫,那麼我們首先需要-安裝它。
2.1 安裝方法
因為pytest是python語言的一個測試的第三方的庫,所以安裝方法和第三方類庫一樣通過命令,命令如下:
pip install -U pytest
2.2 檢視是否安裝成功
出現如下紅色圈起的部分,會簡單點英文的,都知道說明安裝成功
2.3 檢視安裝版本
2.3.1pip show pytest檢視安裝的版本
pip show pytest
2.3.2pytest --version檢視安裝的版本
pytest --version
3. 牛刀小試
1.新建一個test_bjhg_sample.py檔案,(檔案命名以test_*
開頭或者*_test
結尾)
3.1 程式碼實現:
3.2 參考程式碼:
# coding=utf-8 # 1.先設定編碼,utf-8可支援中英文,如上,一般放在第一行 # 2.註釋:包括記錄建立時間,建立人,專案名稱。 ''' Created on 2020-1-03 @author: 北京-巨集哥 Project:《《帶你裝B,帶你飛》pytest修煉之路1- 簡介和環境準備 ''' # 3.匯入模組 # content of test_bjhg_sample.py def func(x): return x +1 def test_answer(): assert func(3)==5
3.3 執行結果:
3.3.1 第一種執行程式碼方法
在terminal中輸入pytest(或者輸入py.test也可以),
執行程式碼後,控制檯列印如下圖的結果
3.3.1 第二種執行程式碼方法
開啟test_bjhg_sample.py所在的資料夾,cmd視窗輸入:pytest(或者輸入py.test也可以),執行程式碼後,控制檯列印如下圖的結果
3.pytest執行規則:**查詢當前目錄及其子目錄下以test_*.py或*_test.py檔案,找到檔案後,在檔案中找到以test開頭函式並執行。**
4. 執行測試類
1.前面是寫的一個test開頭的測試函式,當用例用多個的時候,寫函式就不太合適了。這時可以把多個測試用例,寫到一個測試類裡。
4.1 程式碼實現:
4.2 參考程式碼:
# coding=utf-8 # 1.先設定編碼,utf-8可支援中英文,如上,一般放在第一行 # 2.註釋:包括記錄建立時間,建立人,專案名稱。 ''' Created on 2020-1-03 @author: 北京-巨集哥 Project:《《帶你裝B,帶你飛》pytest修煉之路1- 簡介和環境準備 ''' # 3.匯入模組 # content of test_class.py class TestClass: def test_one(self): x = "this" assert "h" in x def test_two(self): x = "hello" assert hasattr(x, "check")
4.3 執行結果:
執行程式碼後,控制檯列印如下圖的結果
2.開啟cmd,cd到test_class.py的檔案目錄,如果只想執行這個檔案,加上-q引數,-q引數用來指定執行的檔案,不指定就執行該資料夾下所有的用例。pytest會找到符合規則(test_.py和_test.py)所有測試,因此它發現兩個test_字首功能。 如果只想執行其中一個,可以指定傳遞檔名test_class.py來執行模組:
備註: -q, --quiet decrease verbosity( 顯示簡單結果)
py.test -q test_class.py
第一次測試通過,第二次測試失敗。 您可以在斷言中輕鬆檢視失敗的原因。
5. 使用規則
- 測試檔案以test_開頭(以_test結尾也可以)
- 測試類以Test開頭,並且不能帶有
__init__
方法 - 測試函式以test_開頭
- 斷言使用assert
6. 小結
好了,今天的分享就到這裡吧!!!謝謝各位的耐心閱讀。有問題加群交流討論!!!
您的肯定就是我進步的動力。如果你感覺還不錯,就請鼓勵一下吧!記得隨手點波 推薦 不要忘記哦!!!
別忘了點 推薦 留下您來過的痕跡