Огурец: как выполнить фон только один раз для нескольких сценариев - PullRequest
4 голосов
/ 12 декабря 2011

У меня есть функция с разделом фона, который занимает несколько минут;он устанавливает состояние в удаленной системе через API.Я бы хотел, чтобы он выполнялся только один раз для всех последующих сценариев, а не для каждого сценария.Мои сценарии не меняют состояние, они доступны только для чтения, поэтому не должно быть побочных эффектов от одного сценария к другому.

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

В настоящее время я думаю сделать что-то с Before в env.rb и иметь некоторый условный код, основанный на неявном соглашении / значении для тегов, например "@background"-only-one ", может заставить некоторый пользовательский код пропустить шаги, или он может выполнить другую логику в определениях шагов - но немного неприятно пытаться разделить это между выполнениями.

Мысли?

Ответы [ 2 ]

3 голосов
/ 13 декабря 2011

Это на самом деле не решает, но вот что я делаю в этой ситуации.

Я перехожу к одному сценарию и просто отмечаю различные «сценарии» в комментариях.Это именно то, что произойдет, если вы просто закомментируете дополнительные заголовки сценария.

Вот пример закомментирования второго сценария и выполнения состояния теста в конце первой функции

Feature: Admin can manage organizations
  In order to ...

Scenario: can add
  When I log into the admin
  When I follow "Organizations"
  When I follow "Add"

  When I fill in "Email" with "red@cross.com"
  When I fill in "Name" with "Red Cross"
  When I press "Save"
  Then I should see "success"

# Scenario: can edit
  When I follow "Red Cross"
  When I fill in "Name" with "Green Cross"
  When I press "Update"

  Then I should see "success"
0 голосов
/ 06 августа 2013

Если вы не хотите, чтобы ваш фон выполнялся для каждого сценария, тогда это не фон, не так ли?

Если вы вызываете удаленные службы каждый раз, когда запускаете сценарий Cucumber, не делай этого .Вместо этого используйте Webmock и VCR, как описано в http://marnen.github.io/webmock-presentation/webmock.html. Ваши тесты будут быстрее и точнее.

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