Как сделать так, чтобы определения шагов Cucumber загружались в зависимости от выполняемого файла объектов - PullRequest
3 голосов
/ 22 октября 2010

Я бы хотел изменить огурец так, чтобы при выполнении данной функции (скажем, «login.feature») я хотел, чтобы для веб-шагов загружался только login_steps.rb. Другие файлы шагов не должны загружаться.

IMO, было бы очень полезно иметь те же шаги, но которые отличаются по работе реализации соответственно имени функции, которая выполняется.

Поскольку у меня есть почти сто сценариев, и я бы предпочел, чтобы шаги были ступенями высокого уровня, это имело бы смысл.

Есть идеи?

Ответы [ 3 ]

1 голос
/ 15 января 2011

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

1 голос
/ 26 октября 2010

В настоящее время единственный способ сделать это (если не считать исправления самого огурца) - это поместить каждую функцию в отдельное дерево каталогов с собственным файлом env.rb и каталогом step_definitions.

Подробнее см. в этом сообщении в списке рассылки.

0 голосов
/ 22 сентября 2015

Вот пример кода для вас,

.feature файл

Scenario: Some description of the scenario
Given [some context]
When [some event]
Then [outcome]

.rb (определение шага в рубине)

Given /^[some context]$/ do
// code module
// code module
end
  • Это определение шага будет выполняться всякий раз, когда [some context] входит в файл объектов.

говорит,

Given [some context]
When [some context]
Then [some context]
And [some context]

будет выполнять ту же операцию. т.е., когда, тогда и А являются общими.


Кроме того, вы можете прочитать этот документ для лучшего понимания - http://behat.readthedocs.org/
...