Запускайте второй сценарий только в том случае, если первый проходит проверку JBehave.

Я использую JBehave с селеном и безмятежностью, и у меня есть 3 сценария. Я хочу запускать сценарии один за другим. Если сценарий один проходит, запустите второй сценарий. Если второй сценарий проходит успешно, запустите третий сценарий. Если сценарий один терпит неудачу, он не должен запускать какие-либо другие сценарии. Как мне этого добиться?


person Neela    schedule 09.03.2017    source источник


Ответы (2)


Ваши сценарии должны быть независимы друг от друга и быть полным представлением одной цели в одной ситуации. Объединение сценариев вместе в BDD является антишаблоном, и его следует избегать.

Следующий вопрос: почему вы применяете стратегию отказоустойчивости для функционального тестирования? Это необходимо пересмотреть, чтобы определить, является ли это обоснованным подходом для вашей ситуации. Хотя отказоустойчивость является нормой для конвейера развертывания, это не лучший подход для автоматизированного функционального тестирования в целом и, в частности, во время разработки, ориентированной на функции, с помощью BDD. Как правило, лучше использовать отказоустойчивую стратегию автоматизированного функционального тестирования. Я советую вам выполнить все тесты до конца. Обычно это обеспечивает большую ценность. Это позволит избежать раннего неудачного теста от маскировки потенциально более серьезных неудачных тестов или тестов против более важных или ценных функций. Подробный отчет об испытаниях позволяет расставить приоритеты по устранению неполадок.

Если триггер сбоя для всех трех сценариев является общим, используйте общий предусловный шаг. например Given the customer is authorised. Затем просто защитите каждый сценарий этим предварительным условием.

Если триггером сбоя является окружающая среда, используйте тест погоды в бегуне или используйте соответствующий тестовый хук @Before. например Наличие LDAP или базы данных. Затем проверьте это предположение, используя каждую функцию или сценарий.

Если ни один из них не подходит, вам нужно будет уточнить ваше требование с некоторыми примерами сценариев, которые вы используете.

person Martin Spamer    schedule 12.03.2017
comment
Спасибо, Мартин. На самом деле это должен быть только один сценарий, но это большой сценарий. так что я думал, что я мог бы разделить его. Теперь я понял, что сценарий должен быть независимым. Сейчас я пишу один большой сценарий. Большое спасибо за Вашу помощь. - person Neela; 14.03.2017

Возможно, вы могли бы использовать скомпрометированные исключения, но JBehave (и сценарии BDD в целом) на самом деле не предназначены для такого использования — каждый сценарий должен быть независимым.

person John Smart    schedule 10.03.2017
comment
Спасибо, Джон. Теперь я понял, что сценарий должен быть независимым. - person Neela; 14.03.2017