3.pytest 初始化和清除
對自動化測試框架來說,setup
和teardown
至關重要。
模組級別
模組級別
的初始化、清除分別在整個模組的測試用例執行前後執行,並且 只會執行1次
。
建立test_03.py
,定義 setup_module
和teardown_module
全域性函式
# filename:test_03.py
def setup_module():
print('\n====初始化模組====')
def teardown_module():
print('\n====清除模組====')
class TestDemo01():
def test_101(self):
print("\n測試用例test_101執行")
assert 1==1
def test_102(self):
print("\n測試用例test_102執行")
assert 1==1
def test_103(self):
print("\n測試用例test_103執行")
assert 1==1
執行命令 pytest test_03.py
,執行結果如下
============================= test session starts =============================
....
test_03.py
====初始化模組====
測試用例test_101執行
.
測試用例test_102執行
.
測試用例test_103執行
.
====清除模組====
============================== 6 passed in 0.06s ==============================
類級別
類級別
的初始化、清除 分別在整個類的測試用例 執行前後執行,並且 只會執行1次
修改test_03.py
檔案,定義 setup_class
和teardown_class
類方法
....
class TestDemo01():
def setup_class(self):
print('\n====初始化類====')
def teardown_module(self):
print('\n====清除類====')
def test_101(self):
print("\n測試用例test_101執行")
assert 1 == 1
def test_102(self):
print("\n測試用例test_102執行")
assert 1 == 1
def test_103(self):
print("\n測試用例test_103執行")
assert 1 == 1
執行命令 pytest test_03.py
,執行結果如下
============================= test session starts =============================
....
test_03.py
====初始化模組====
====初始化類====
測試用例test_101執行
.
測試用例test_102執行
.
測試用例test_103執行
.
====清除類====
====清除模組====
============================== 6 passed in 0.06s ==============================
方法級別
方法級別
的初始化、清除 分別 在類的每個測試方法執行前後執行,並且 每個用例分別執行1次
修改test_03.py
檔案,定義 setup_method和 teardown_method 類方法
....
class TestDemo01():
def setup_class(self):
print('\n====初始化類====')
def teardown_class(self):
print('\n====清除類====')
def setup_method(self):
print('\n====初始化方法====')
def teardown_method(self):
print('\n====清除方法====')
def test_101(self):
print("\n測試用例test_101執行")
assert 1 == 1
def test_102(self):
print("\n測試用例test_102執行")
assert 1 == 1
def test_103(self):
print("\n測試用例test_103執行")
assert 1 == 1
執行命令 pytest test_03.py
,執行結果如下
============================= test session starts =============================
....
test_03.py
====初始化模組====
====初始化類====
====初始化方法====
測試用例test_101執行
.
====清除方法====
====初始化方法====
測試用例test_102執行
.
====清除方法====
====初始化方法====
測試用例test_103執行
.
====清除方法====
====清除類====
====清除模組====
============================== 6 passed in 0.07s ==============================
目錄級別
目標級別
的 初始化清除,就是針對整個目錄執行的初始化、清除。
在需要初始化的目錄下面建立 一個名為 conf.py
的檔案,裡面內容如下所示
import pytest
@pytest.fixture(scope='package',autouse=True)
def st_emptyEnv():
print('\n#### 初始化-目錄')
yield
print('\n#### 清除-目錄')
執行命令 pytest test_03.py
,執行結果如下
============================= test session starts =============================
....
#### 初始化-目錄
====初始化模組====
====初始化類====
====初始化方法====
測試用例test_101執行
.
====清除方法====
====初始化方法====
測試用例test_102執行
.
====清除方法====
====初始化方法====
測試用例test_103執行
.
====清除方法====
====清除類====
====清除模組====
#### 清除-目錄
============================== 6 passed in 0.02s ==============================
但是我發現了pytest一個重要的bug: 清除操作並不一定會在該目錄最後一個測試用例執行完進行呼叫。
所以在這個問題解決前,推薦大家先不要使用這種 目錄級別
的初始化清除。
相關文章
- 2.7.7 清除初始化引數的值
- 用whistle清除js和css快取JSCSS快取
- 談談浮動和清除浮動?
- ()和{}初始化的用法
- session屬性的清除和非法登入Session
- 物件的初始化和清理物件
- Mybatis的初始化和結合Spring Framework後初始化的MyBatisSpringFramework
- Ubuntu系統iptables規則的檢視和清除Ubuntu
- 為什麼會出現浮動和什麼時候需要清除浮動?清除浮動的方式?
- 清除浮動
- GO語言—————7.1 宣告和初始化Go
- Java類初始化和例項化Java
- C++ 陣列宣告和初始化C++陣列
- Java變數的宣告和初始化Java變數
- AnnotationConfigApplicationContext(1)之初始化Scanner和ReaderAPPContext
- Win10怎麼清除所有資料?Win10電腦清除所有資料的方法和步驟Win10
- Mybatis的初始化和結合Spring Framework後初始化的原始碼探究MyBatisSpringFramework原始碼
- 如何清除Safari,Chrome和Firefox中的快取,歷史記錄和CookieChromeFirefox快取Cookie
- css清除浮動CSS
- CSS 清除浮動CSS
- CSS——清除浮動CSS
- 清除 useEffect 副作用
- 一些轉儲和清除記憶體物件和物理物件的命令(轉)記憶體物件
- 初探Docker CentOS 7.9 2009 Mini 作業系統環境初始化 和Docker初始化DockerCentOS作業系統
- GO語言————8.1 MAP宣告、初始化和makeGo
- java安全編碼指南之:宣告和初始化Java
- 4_Spring Bean的初始化和銷燬SpringBean
- Element原始碼:專案初始化和webpack配置原始碼Web
- 前端入門-day3(CSS中浮動和清除浮動)前端CSS
- 純生JS輪播,定時器新增和清除定時器JS定時器
- 深入清除浮動原理
- 清除浮動的方法
- 塊清除(block clean out)BloC
- CSS-清除浮動CSS
- js清除所有的cookieJSCookie
- ci3清除sessionSession
- Oracle Block Cleanouts 塊清除OracleBloC
- win10如何清除快取和垃圾,清理win10快取和垃圾的方法Win10快取