2016-03-16 3 views
2

Например, если у вас есть:Можно ли запустить срывное приспособление только после запуска всех параметров?

@pytest.mark.parametrize('lang', 
         ["EN", 
          "FR"]) 
def test_whats_hot_quick_links_are_displayed(self, lang): 
     # Do something here 

и у меня есть этот Teardown приспособление в 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 проходит испытания выполняются вместо этого запуска после каждого прогона param?

ответ

1

Для такого поведения я использую 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 
+0

Спасибо! Очень признателен – Froodo

Смежные вопросы