Python pytest fixture夾具


一、簡要描述

  在自動化測試過程中,為測試用例提前准備的一個運行環境,這個測試環境被稱為測試夾具。

  測試夾具的本質是一個函數,在函數上方加上@pytest.fixture()聲明即可成為夾具。

  在測試用例方法執行之前的稱為前置條件,測試用例方法執行之后的稱為后置條件。以yield作為標記,yield之前的代碼為前置條件執行的代碼,反之為后置條件執行的代碼。

  在夾具中的yield后面可以傳遞參數(想要返回的值),即前置條件的返回值。yield與return類似,可以有返回值,但yield不一樣,執行完yield之后還可以繼續往下運行,而函數遇到return就終止了。

  

二、使用方式

  方法一:把夾具的函數名稱作為參數傳到測試用例函數當中。若要獲取夾具的返回值,可以直接使用夾具函數名稱。

  

   方法二:在測試用例函數上方添加@pytest.mark.usefixtures()標記,並將夾具函數名稱傳遞到usefixtures()中,可以傳多個值,如@pytest.mark.usefixtures('function_before', 'function_two')。不能接受夾具的返回值,即測試用例函數中要使用夾具的返回值時,該方法不適用。

  

三、作用域

  根據@pytest.fixture()中scope參數不同,作用域區分如下:

  function(函數):每個測試用例函數執行時都會執行一次,默認值  

  class(類):不論有多少測試用例,整個類只會運行一次

  module(模塊):不論有多少測試用例,整個模塊(文件)下只運行一次

  package(包):不論有多少測試用例,整個包(文件夾)下只運行一次

  session:不論有多少測試用例,整個pytest下只會運行一次

  

   

四、自動使用

  將@pytest.fixture()中autouse參數設為True,即可自動使用夾具,不需要一個個傳參數,默認值為False。

  

五、conftest.py

  共享夾具fixture,將夾具單獨存放到conftest.py中(文件名稱是固定的,文件放在項目根目錄),用例模塊不需要導入模塊名,就可以直接使用。

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM