6

我的 Cucumber 只是找不到步骤定义。文件结构(仅 Rails 根目录中的 specs 文件夹)如下所示:

-> specs
   -> features
      -> main_structure.feature
      -> step_definitions
         -> main_structure_steps.rb

这是 main_structure.feature:

Feature: Main structure
  Scenario: Viewing the Structure page
    When I am on the structure page

这是main_structure_steps.rb:

When(/^I am on the structure page$/) do
  visit '/'
end

现在我像这样运行黄瓜命令:

→ cucumber spec/features -r features 

我得到这个输出:

Using the default profile...
Feature: Main structure

  Scenario: Viewing the Structure page # spec/features/main_structure.feature:2
    When I am on the structure page    # spec/features/main_structure.feature:3
      Undefined step: "I am on the structure page" (Cucumber::Undefined)
      spec/features/main_structure.feature:3:in `When I am on the structure page'

1 scenario (1 undefined)
1 step (1 undefined)
0m0.229s

You can implement step definitions for undefined steps with these snippets:

When(/^I am on the structure page$/) do
  pending # express the regexp above with the code you wish you had
end

/Users/rudolf/.rvm/gems/ruby-2.0.0-p247@global/gems/minitest-4.7.5/lib/minitest/unit.rb:1037:in `block in process_args': invalid option: -r (OptionParser::InvalidOption)
    from /Users/rudolf/.rvm/gems/ruby-2.0.0-p247@global/gems/minitest-4.7.5/lib/minitest/unit.rb:1016:in `new'
    from /Users/rudolf/.rvm/gems/ruby-2.0.0-p247@global/gems/minitest-4.7.5/lib/minitest/unit.rb:1016:in `process_args'
    from /Users/rudolf/.rvm/gems/ruby-2.0.0-p247@global/gems/minitest-4.7.5/lib/minitest/unit.rb:1066:in `_run'
    from /Users/rudolf/.rvm/gems/ruby-2.0.0-p247@global/gems/minitest-4.7.5/lib/minitest/unit.rb:1059:in `run'
    from /Users/rudolf/.rvm/gems/ruby-2.0.0-p247@global/gems/minitest-4.7.5/lib/minitest/unit.rb:795:in `block in autorun'

底部还有一条错误消息,当我在 RubyMine 中运行测试时没有出现。但在这两种情况下,都找不到步骤定义。这是 Rubymine 的输出:

Testing started at 21:29 ...


You can implement step definitions for undefined steps with these snippets:

When(/^I am on the structure page$/) do
  pending # express the regexp above with the code you wish you had
end
1 scenario (1 undefined)
1 step (1 undefined)
0m0.001s

Process finished with exit code 0

如果您需要任何其他信息,请告诉我。

4

4 回答 4

12

尝试

cucumber spec/features/main_structure.feature -r spec/features
于 2013-09-12T19:58:56.523 回答
1

类似于我的问题:黄瓜测试以一种奇怪的方式

您可以使用以下代码片段为未定义的步骤实现步骤定义:

When(/^I am on the structure page$/) do
  pending # express the regexp above with the code you wish you had
end

正如错误所说。将上面的代码放在web_steps.rb中,然后替换pending # express the regexp above with the code you wish you had成你想要的代码

于 2013-09-12T19:44:54.040 回答
0

Java 也有类似的问题,对我来说,原因是我在 NetBeans IDE 中安装了 2 个 Cucumber 插件。我离开 Cetriolo 并删除了 Cucumber 功能和测试开始工作

于 2013-11-19T21:19:02.843 回答
0

确保胶合语法如下所示:

胶水={“包名”}

这里 packageName 是您步骤定义 java 文件所在的包

于 2017-01-19T20:55:05.983 回答