1. 程式人生 > >《帶你裝B,帶你飛》pytest修煉之路1- 簡介和環境準備

《帶你裝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. 小結

  好了,今天的分享就到這裡吧!!!謝謝各位的耐心閱讀。有問題加群交流討論!!!

 

您的肯定就是我進步的動力。如果你感覺還不錯,就請鼓勵一下吧!記得隨手點波  推薦  不要忘記哦!!!

別忘了點 推薦 留下您來過的痕跡