Транспортир-огурец порядок выполнения испытаний - PullRequest
0 голосов
/ 26 февраля 2019

Я пишу автоматические тесты для своего приложения, используя платформу Protractor-Cucumber.

У меня есть несколько файлов объектов с несколькими сценариями каждый, и я хочу управлять порядком их выполнения с помощью тегов Cucumber.Очевидно, что все сценарии попадают в категорию «FullRegression», но я также хочу пометить некоторые из них тегом «SmokeTest» для ежедневного запуска.Проблема заключается в том, что эти сценарии «дыма» разбросаны по всем функциям, и они должны выполняться в определенном порядке для правильной работы.

Например, я хочу запустить сценарии 2 и 3 из Feature2, а затем запуститьсценарий 1 и 2 из Feature1, а затем запустить сценарий 5 из Feature3.

Возможно ли сделать это с помощью тегов Cucumber?Я попробовал это, но это не сработало, как я ожидал.Единственная другая идея, которую я имею, - это создать специальный файл «SmokeTest.feature», но тогда мне нужно будет повторить множество сценариев внутри него.

Оцените любую помощь.

1 Ответ

0 голосов
/ 27 февраля 2019

Огурец разработан таким образом, что все сценарии независимы друг от друга и не могут быть связаны друг с другом.Каждый сценарий начинается с нуля, очищается от сеанса, очищается база данных и т. Д. Это стандартная практика для всех основных тестовых сред (идемпотентность)

Так что не существует простого способа сделать то, что вы хотите, и многое другоеважно, что делать то, что вы хотите, не имеет смысла.

Теперь некоторые люди прилагают большие усилия, чтобы обойти это (особенно некоторые пользователи Cucumber), так что, возможно, это случилось с вашим набором тестов, но, опять же, это действительно плохоdo.

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

Scenario: Foo
  When I foo
end

Scenario: Bar
  When I bar
end

# This is the one you would write
Scenario: Foo bar
  When I foo
  And I bar
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...