[英]Update and share variable between tests on Pytest
所以,我正在運行一些測試,每個測試都會創建一個變量(鍵),例如:
def test_123():
key = 'abc'
....
---- test_123 PASSED! ----
def test_456():
key = 'def'
....
---- test_456 FAILED! ----
我還有另一個測試,最后要執行,目的是驗證這些密鑰。 但它應該只驗證測試通過的密鑰。
def check_keys():
# keys = ['abc']
for key in keys:
....
由於此驗證花費的時間太長,最好一次檢查所有這些密鑰,而不是在每次測試中
因此,我計划創建一個列表,該列表應該是這些測試之間的全局變量,並在給定的測試通過時使用正確的鍵增加它。
最后一個測試應該通過這個列表並檢查通過的測試的鍵。
我已經閱讀了 pytest hooks 和 pytest cache,但我發現的例子太復雜了:(
有人可以幫助我嗎? 謝謝!
您可以在conftest.py
執行此conftest.py
並具有適當范圍的夾具。 請參閱此文檔。
假設模塊范圍(基本上是文件中的所有函數),它可能看起來像這個例子:
conftest.py 文件
import pytest
@pytest.fixture(scope='module')
def myfixture():
keys = []
yield keys
mytests.py
def test_myex1(myfixture):
myfixture.append(1)
assert True
def test_myex2(myfixture):
myfixture.append(2)
assert True
def test_myex3(myfixture):
print(myfixture)
if len(myfixture) == 2:
assert True
else:
assert False
測試 3 將通過,因為第一個測試會將密鑰附加到myfixture
。 請小心,因為測試 3 在此設置中無法獨立通過。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.