是否可以 运行 只有在所有参数 运行 之后才拆除夹具?
Is it possible to run tear down fixture only after all params runs?
例如,如果您有:
@pytest.mark.parametrize('lang',
["EN",
"FR"])
def test_whats_hot_quick_links_are_displayed(self, lang):
# Do something here
我在 conftest 中有这个拆解装置:
@pytest.fixture(scope='function', autouse=True)
def teardown_function(request):
def execute_at_the_end():
logging.info("Ending Test Case...")
database.clear()
request.addfinalizer(execute_at_the_end)
那么我怎样才能让拆解函数只在 EN 和 FR 测试 运行 都被执行之后才执行,而不是在每个参数 运行 之后都有这个 运行?
对于这种行为,我使用 scope=class
并用 class
:
包装我的测试
import pytest
@pytest.yield_fixture(scope='class')
def teardown_after_all_params():
yield
execute_at_the_end()
@pytest.mark.usefixtures('teardown_after_all_params')
class TestLinks:
@pytest.mark.parametrize('lang', ["EN", "FR"])
def test_whats_hot_quick_links_are_displayed(self, lang):
# Do something here
例如,如果您有:
@pytest.mark.parametrize('lang',
["EN",
"FR"])
def test_whats_hot_quick_links_are_displayed(self, lang):
# Do something here
我在 conftest 中有这个拆解装置:
@pytest.fixture(scope='function', autouse=True)
def teardown_function(request):
def execute_at_the_end():
logging.info("Ending Test Case...")
database.clear()
request.addfinalizer(execute_at_the_end)
那么我怎样才能让拆解函数只在 EN 和 FR 测试 运行 都被执行之后才执行,而不是在每个参数 运行 之后都有这个 运行?
对于这种行为,我使用 scope=class
并用 class
:
import pytest
@pytest.yield_fixture(scope='class')
def teardown_after_all_params():
yield
execute_at_the_end()
@pytest.mark.usefixtures('teardown_after_all_params')
class TestLinks:
@pytest.mark.parametrize('lang', ["EN", "FR"])
def test_whats_hot_quick_links_are_displayed(self, lang):
# Do something here