fixtrue基礎之scope引數
一、 scope引數是什麼?
· scope引數是fixture方法中的其中一個引數;
· scope引數用來設定fixture的應用範圍,設定後,會根據設定的範圍去觸發執行;
· scope引數有4個可選值:function(預設)、class、module、package/session
function:每個方法(函式)都會執行一次;
class:每個類都會執行一次。類中有多個方法呼叫,只在第一個方法呼叫時執行;
module:一個 .py 檔案執行一次。一個.py 檔案可能包含多個類和方法;
package/session:多個檔案呼叫一次,可以跨 .py 檔案。注意使用時單獨寫package或session
二、 scope引數出處(會的忽略該步)
· 2.1 編寫如下圖程式碼,並按照操作:
![](https://img2020.cnblogs.com/blog/380431/202003/380431-20200316215325495-538117319.jpg)
+ 2.2 跳轉到fixture方法的位置時,就可以看到scope引數了,它有預設值function,英文好的朋友可以繼續看下面的註釋
![](https://img2020.cnblogs.com/blog/380431/202003/380431-20200316215618244-779488914.png)
三、 scope引數簡單使用
· 3.1 scope="function" 舉例
importpytest
@pytest.fixture(scope='function') # function級別每個函式都會執行一次
def setUp():
print('\nsetUp')
yield
print('\ntearDown')
def testcase01(setUp):
print('exectue testcase01')
assert 1
def testcase02(setUp):
print('exectue testcase02')
assert 1
if__name__=='__main__':
pytest.main(["-s"])
以上程式碼執行結果:
/usr/local/bin/python3.8
/Users/lanyin/PycharmProjects/newdream/pytest_demo/test_demo_03.py
============================= test session starts ==============================
platform darwin -- Python3.8.2, pytest-5.4.0, py-1.8.1, pluggy-0.13.1
rootdir:/Users/liuqingjun/PycharmProjects/newdream/pytest_demo
plugins:ordering-0.6, html-2.1.0, allure-pytest-2.8.11, metadata-1.8.0
collected2items
test_demo_03.py
setUp
exectue testcase01
.
tearDown
setUp
exectue testcase02
.
tearDown
==============================2passedin0.02s ===============================
· 3.2 scope="module" 舉例
import pytest
@pytest.fixture(scope='module') # module級別每個模組都會執行一次
def setUp():
print('\nsetUp')
yield
print('\ntearDown')
def testcase01(setUp):
print('exectue testcase01')
assert 1
def testcase02(setUp):
print('exectue testcase02')
assert 1
if__name__=='__main__':
pytest.main(["-s"])
以上程式碼執行結果:
/usr/local/bin/python3.8
/Users/lanyin/PycharmProjects/newdream/pytest_demo/test_demo_03.py
============================= test session starts ==============================
platform darwin -- Python3.8.2, pytest-5.4.0, py-1.8.1, pluggy-0.13.1
rootdir:/Users/liuqingjun/PycharmProjects/newdream/pytest_demo
plugins:ordering-0.6, html-2.1.0, allure-pytest-2.8.11, metadata-1.8.0
collected2items
test_demo_03.py
setUp
exectue testcase01
.exectue testcase02
.
tearDown
==============================2passedin0.02s ===============================
上述兩個例項小結:
· scope="function" 在每個函式開始執行 測試方法 之前執行一次,每個測試方法部執行完之後再執行一次 (共 2次輸出setUp、tearDown)
· scope="module" 只會在模組開始執行測試方法之前執行一次,測試方法全部執行完之後執行一次(共1次輸出setUp、tearDown)
· "class"和"package/session"與上述用法原理一樣,不再重複舉例,傷大家眼睛
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69940641/viewspace-2909232/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- fixtrue基礎之name引數
- fixtrue基礎之autouse引數
- fixtrue基礎之ids引數
- fixtrue基礎之params引數實現簡單引數化
- JAVA基礎之-引數傳遞Java
- python基礎之 函式的引數Python函式
- fixtrue基礎之測試初始化及測試後清理操作
- Python基礎(11):引數Python
- [java基礎]之變數Java變數
- CSS3-陰影引數基礎CSSS3
- 函式基礎和函式引數函式
- Jmeter基礎004----增加引數化JMeter
- Spring WebFlux 基礎教程:引數校驗SpringWebUX
- JUnit5學習之六:引數化測試(Parameterized Tests)基礎Zed
- c#基礎-5.變長引數和引數預設值C#
- 『忘了再學』Shell基礎 — 16、位置引數變數變數
- Thinkphp5基礎——10 請求引數PHP
- 【ES6基礎】預設引數值
- 【公式與引數】用友U8-UFO報表公式與引數基礎公式
- Matplotlib基礎:subplot多子圖index引數解釋Index
- java基礎(九) 可變引數列表介紹Java
- Java 基礎 之 算數運算子Java
- Linux基礎之Shell與變數Linux變數
- Go 之基礎速學 (五) golang 裡函式以及函式之間引數的傳遞Golang函式
- AngularJS之Scope及ControllerAngularJSController
- JavaWeb基礎-Request物件接收表單請求引數JavaWeb物件
- Python基礎之:數字字串和列表Python字串
- 『動善時』JMeter基礎 — 24、JMeter中使用“使用者引數”實現引數化JMeter
- 前端基礎之jQuery基礎前端jQuery
- mybatis基礎03(介面中的多個引數處理)MyBatis
- Android面試之——數學基礎知識Android面試
- Java逆向基礎之靜態變數存取Java變數
- 引數匹配模型——Python學習之引數(二)模型Python
- 基礎設施建設——全域性請求引數校驗
- AI數學基礎之:P、NP、NPC問題AI
- AI數學基礎之:概率和上帝視角AI
- 引數匹配順序——Python學習之引數(三)Python
- Javascript基礎之-thisJavaScript