《帶你裝B,帶你飛》pytest修鍊之路1- 簡介和環境準備

  • 2020 年 2 月 11 日
  • 筆記

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. 小結

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

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

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

Tags: