Диспетчер динамических сценариев для Python Behave

python bdd scenarios python-behave

400 просмотра

2 ответа

127 Репутация автора

Я запускаю несколько сценариев и хотел бы включить какой-то динамический диспетчер сценариев, который позволил бы мне выполнять определенные шаги после выполнения теста на основе выполненного сценария. Когда я использовал PHPUnit, я имел возможность создавать подклассы класса TestCase и добавлять свои собственные методы установки и разрыва. Для поведения я добавляю дополнительный шаг «Затем» в конце сценария, который будет выполнен после завершения сценария, чтобы очистить все - очистить изменения конфигурации, сделанные сценарием, и т. Д. Но так как каждый сценарий отличается, изменения конфигурации, которые мне нужно внести, относятся к конкретному сценарию, поэтому я не могу использовать хук after_scenario, который есть в моем файле environment.py. Есть идеи как реализовать нечто подобное?

Автор: nnja Источник Размещён: 14.07.2016 02:30

Ответы (2)


0 плюса

51 Репутация автора

Решение

after_scenarioпередает оба сценария в функцию. Затем вы можете отправить имя сценария или любой из его тегов. Например, с помощью тегов вы можете определить свой сценарий как

@clean_up
Scenario: Something
    ...

А твой после слушателя как

def after_scenario(context, scenario):
    if 'clean_up' in scenario.tags:
        ...
    elif 'clean_down' in scenario.tags:
        ...
Автор: Elliot Размещён: 14.07.2016 02:58

0 плюса

378 Репутация автора

То, что я делал, может дать вам представление:

В before_all укажите список в контексте (например, context.teardown_items = []).

Затем на различных этапах различных сценариев добавьте в этот список (счета, заказы или что-то еще)

Затем в after_all я вхожу как суперпользователь и очищаю все, что я указал в этом списке.

Может ли что-то подобное сработать для вас?

Автор: Chai Размещён: 28.07.2016 05:58
Вопросы из категории :
32x32