2016-10-31 2 views
0

Мне нужно получить имя сценария или другую уникальную информацию о текущем тестировании в методе @given.pytest-bdd: как получить текущий сценарий от @given?

В моем тесте я заявляю, что у меня есть некоторый ресурс. Этот ресурс извлекается/создается из веб-апи так:

@given('I have a new article') 
def new_article(vcr_fixture): 
    with vcr_fixture.use_cassette('new_article'): # I need to use different cassette name for different scenarios 
     return create_new_article() 

Проблема здесь состоит в том, что я могу иметь несколько сценариев с различными параметрами, и я хотел бы использовать тот же ресурс несколько раз. В этом случае мне нужны разные кассеты для каждого случая. И я не могу использовать эти параметры для различения кассет, поскольку они могут применяться после создаваемого ресурса (например, добавления комментариев). Я попытался добавить запрос на приспособление @given, но не смог найти в нем никакой уникальной информации.

ответ

0

Чтобы проверить имя сценария, вы можете использовать синтаксические анализаторы.

from pytest_bdd import parsers 
... 

@given(parsers.parse('I have a {article_name}') 
def new_article(vcr_fixture, article_name): 
    with vcr_fixture.use_cassette(article_name):   
     return create_new_article() 

Не уверен, если это, если это отвечает на ваш вопрос, хотя ..

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