"rake" запускает все мои тесты на огурцы, но "огурец" не имеет шагов
Я унаследовал приложение Rails (3), и я пытаюсь справиться с существующими тестами Cucumber. У меня есть следующая настройка в папке "Возможности" приложения (я пропустил любые файлы, которые не актуальны, например, дополнительные функции и шаги)
/features
/people
new-person.feature
/step_definitions
people_steps.rb
web_steps.rb
/support
env.rb
paths.rb
selectors.rb
Если я запустил "rake", он запускает все функции в функциях /people/new -person.feature, правильно используя шаги, перечисленные в step_definitions.
Однако я не хочу запускать rake каждый раз, поскольку он занимает слишком много времени, я просто хочу запустить конкретный тест в Cucumber, например. cucumber features/people/new-person.feature -l 8
Когда я это делаю, он запускает эту функцию, но не загрузил шаги. Я верну это:
Using the default profile...
Feature: Add a new person
In order to allocate tasks to people
As a community manager
I want to add a new person
Scenario: Secondary navigation should contain "Add new person" # features/people/new-person.feature:8
Given I am on the new person page # features/people/new-person.feature:9
Undefined step: "I am on the new person page" (Cucumber::Undefined)
features/people/new-person.feature:9:in `Given I am on the new person page'
Then I should not see "Add new person" # features/people/new-person.feature:10
Undefined step: "I should not see "Add new person"" (Cucumber::Undefined)
features/people/new-person.feature:10:in `Then I should not see "Add new person"'
1 scenario (1 undefined)
2 steps (2 undefined)
0m0.005s
You can implement step definitions for undefined steps with these snippets:
Given /^I am on the new person page$/ do
pending # express the regexp above with the code you wish you had
end
Then /^I should not see "([^"]*)"$/ do |arg1|
pending # express the regexp above with the code you wish you had
end
If you want snippets in a different programming language, just make sure a file
with the appropriate file extension exists where cucumber looks for step definitions.
Почему Cucumber не загружает шаги? Я предполагаю, что мне нужно будет выполнять шаги где-то, но я не могу решить, где.
Спасибо, Макс
Ответы
Ответ 1
Макс Уильямс нашел ответ на свой вопрос:
EDIT - нашел ответ, здесь: https://rspec.lighthouseapp.com/projects/16211/tickets/401-envrb-not-loaded-when-running-individual-features-in-sub-directories
В config/cucumber.yml есть строка, которая выглядит так:
std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags [email protected]"
измените его на
std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags [email protected] --require features/"
Это похоже на добавление --require features/
в конец вашего тестового прогона огурца и позволяет ему правильно загружать все.
Ответ 2
У меня не было файла cucumber.yml для изменения по любой причине. Итак, просто создав пустой файл /config/cucumber.yml и введя в него строку:
std_opts = "--format # {ENV ['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~ @wip --require features/"
не работает. (Это не удивительно, я полагал, что предполагалось, что это будет больше, чем просто одна строка.)
Я нашел хороший пример файла FULL, working, cucumber.yml здесь: http://jdfrens.blogspot.com/2010/03/uh-yes-i-did-define-that-cucumber-step.html