簡體   English   中英

pytest固定裝置,每次測試都運行范圍會話

[英]pytest fixture with scope session running for every test

如果我錯了,請糾正我,但是如果一個夾具是用scope="session"定義的,難道不應該在整個pytest運行中只運行一次它?

例如:

import pytest

@pytest.fixture
def foo(scope="session"):
    print('foooooo')


def test_foo(foo):
    assert False

def test_bar(foo):
    assert False

我有一些測試依賴於從某些API檢索的數據,而不是在每個測試中都查詢API,而是有一個夾具來一次獲取所有數據,然后每個測試使用它所需的數據。 但是,我注意到,對於每個測試,都會向API發出請求。

那是因為您在聲明燈具錯誤。 scope應該進入pytest.fixture裝飾器參數:

@pytest.fixture(scope="session")
def foo():
    print('foooooo')

在您的代碼中,范圍保留為默認值function ,這就是為什么要為每個測試運行燈具的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM