我继承了Rails(3)应用程序,并试图掌握现有的Cucumber测试。我在应用程序的'features'文件夹中有以下设置(我错过了任何不相关的文件,例如额外的功能和步骤)
/features
/people
new-person.feature
/step_definitions
people_steps.rb
web_steps.rb
/support
env.rb
paths.rb
selectors.rb
如果我运行'rake',它会运行features / 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.
黄瓜为什么不装入这些步骤?我猜我需要在某个地方要求步骤,但我无法解决问题。
谢谢,Max
答案 0 :(得分:11)
在config / cucumber.yml中有一行如下所示:
std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~@wip"
将其更改为
std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~@wip --require features/"
这就像在黄瓜测试运行结束时添加--require features/
并使其正确加载所有内容。
答案 1 :(得分:0)
无论出于何种原因,我还没有更改的cucumber.yml文件。因此,只需创建一个空白的/config/cucumber.yml文件并将该行放入其中:
std_opts =“ - format#{ENV ['CUCUMBER_FORMAT'] ||'pretty'} --strict --tags~ @ wip --require features /”
没用。 (这并不奇怪,我认为它应该比这一行更多。)
我在这里找到了一个完整的,有效的,cucumber.yml示例文件的好例子:http://jdfrens.blogspot.com/2010/03/uh-yes-i-did-define-that-cucumber-step.html