如下有十个用例,每个用例中等待5秒,使用pytest顺序执行
import time
def test_testcase_01():
time.sleep(5)
def test_testcase_02():
time.sleep(5)
def test_testcase_03():
time.sleep(5)
def test_testcase_04():
time.sleep(5)
def test_testcase_05():
time.sleep(5)
def test_testcase_06():
time.sleep(5)
def test_testcase_07():
time.sleep(5)
def test_testcase_08():
time.sleep(5)
def test_testcase_09():
time.sleep(5)
def test_testcase_10():
time.sleep(5)
import pytest
import time
@pytest.fixture(scope="session",autouse=True)
def fixture_demo():
time.sleep(10)
执行结果如下:
和上面的结果对比分析可以发现,在并发执行的场景下,pytest仍然遵守session级别的fixture只执行一次的原则,因为和上次执行多耗时10秒,而此次conftest.py中的fixture等待了10秒,所以说明这个fixture只执行了一次
更多实例请参考 pytest并发执行实例