2016-08-10 2 views
0

Мы используем Gherkin/Behave (в Python) для тестирования встроенного приложения. Код Gherkin выполняется на сервере, а фактическая активность выполняется приложением на устройстве, обмениваясь по сети. Приложение на устройстве необходимо запустить вручную.Как запросить пользователя в тесте Gherkin?

Мне нужен тест для перезагрузки устройства. Я могу заставить тестовое приложение выполнить перезагрузку, но затем мне нужен код на сервере, чтобы предложить пользователю перезапустить тестовое приложение, чтобы тест можно продолжить с последующими шагами. Однако я не могу получить код Python в файле «шаги» для вывода любого текста.

Я ценю, что Gherkin/Behave предназначен для обеспечения полностью автоматизированного тестирования, но здесь применяются ограничения реального мира.

ответ

0
for formatter in context._runner.formatters: 
    formatter.stream.write("Your message here\n") 
    formatter.stream.write("\n") 

Дополнительный символ новой строки необходима, поскольку Behave печатает описание шага, а затем переписывает его в зеленый цвет, если оно прошло. Дополнительная строка новой строки гарантирует, что эта перезапись перезаписывает пустую строку, а не текст.

Обратите внимание, что когда я тестировал это, я использовал форматировщик по умолчанию. Я не знаю, насколько хорошо он будет работать с другими форматировщиками.

+0

После некоторых экспериментов я обнаружил, что форматировщик записывает шаг над двумя (или потенциально более) строками, и поэтому необходимы дополнительные новые строки. Мое окончательное решение, поскольку отображаемое приглашение было необходимо только временно, заключалось в том, чтобы удалить текст, напечатав управляющие коды ANSI непосредственно перед завершением шага. Затем форматер смог перекрасить описание шага, как обычно, и никаких дополнительных строк перевода не требовалось. – AlastairG

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