7

我在使用带有 Rails 3 的 Bundler 和 Cucumber 时遇到问题。

当我运行时,$ rake cucumber我得到以下输出:

bundle exec /usr/local/bin/ruby -I "/usr/local/lib/ruby/gems/1.9.1/gems/cucumber-
0.8.5/lib:lib" "/usr/local/lib/ruby/gems/1.9.1/gems/cucumber-0.8.5/bin/cucumber" --profile 默认
(在 /home/<用户名>/practice/rails/blog)
使用默认配置文件...
呜呜呜

1 个场景(1 个未定义)
4 个步骤(4 个未定义)
0m1.552s

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

给定 /^a post$/ 做
  pending # 用你希望的代码表达上面的正则表达式
结尾

给定 /^a name is specified$/ do
  pending # 用你希望的代码表达上面的正则表达式
结尾

当/^我保存帖子$/时
  pending # 用你希望的代码表达上面的正则表达式
结尾

然后/^帖子应该节省$/做
  pending # 用你希望的代码表达上面的正则表达式
结尾

耙中止!
命令失败,状态为 (1):[bundle exec /usr/local/bin/ruby -I "/usr/l...]
/usr/local/lib/ruby/1.9.1/rake.rb:993:in `block in sh'
/usr/local/lib/ruby/1.9.1/rake.rb:1008:in `call'
/usr/local/lib/ruby/1.9.1/rake.rb:1008:in `sh'
/usr/local/lib/ruby/1.9.1/rake.rb:1092:in `sh'
/usr/local/lib/ruby/gems/1.9.1/gems/cucumber-0.8.5/lib/cucumber/rake/task.rb:72:in `run'
/usr/local/lib/ruby/gems/1.9.1/gems/cucumber-0.8.5/lib/cucumber/rake/task.rb:142:in `block in define_task'
/usr/local/lib/ruby/1.9.1/rake.rb:634:in `call'
/usr/local/lib/ruby/1.9.1/rake.rb:634:in `block in execute'
/usr/local/lib/ruby/1.9.1/rake.rb:629:in `每个'
/usr/local/lib/ruby/1.9.1/rake.rb:629:在“执行”中
/usr/local/lib/ruby/1.9.1/rake.rb:595:in `block in invoke_with_call_chain'
/usr/local/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/usr/local/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain'
/usr/local/lib/ruby/1.9.1/rake.rb:605:in `block in invoke_prerequisites'
/usr/local/lib/ruby/1.9.1/rake.rb:602:in `每个'
/usr/local/lib/ruby/1.9.1/rake.rb:602:in `invoke_prerequisites'
/usr/local/lib/ruby/1.9.1/rake.rb:594:in `block in invoke_with_call_chain'
/usr/local/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/usr/local/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain'
/usr/local/lib/ruby/1.9.1/rake.rb:581:in `invoke'
/usr/local/lib/ruby/1.9.1/rake.rb:2041:in `invoke_task'
/usr/local/lib/ruby/1.9.1/rake.rb:2019:in `block (2 levels) in top_level'
/usr/local/lib/ruby/1.9.1/rake.rb:2019:in `每个'
/usr/local/lib/ruby/1.9.1/rake.rb:2019:in `block in top_level'
/usr/local/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
/usr/local/lib/ruby/1.9.1/rake.rb:2013:in `top_level'
/usr/local/lib/ruby/1.9.1/rake.rb:1992:在“运行”中
/usr/local/bin/rake:31:in `'

尽管有这个输出,但我的功能工作正常,当我添加步骤定义并传递它们时,所有更改都会正确显示在控制台中。

这是我的 Gemfile:

组:开发,:测试做
  宝石'黄瓜导轨'
  gem 'rspec-rails', '>= 2.0.0.beta.22'
  宝石“硒”
  宝石“薄”
  宝石'webrat'
结尾

我想注意,如果我使用bundle exec cucumberorcucumber features/命令,我不会收到任何错误消息。

这个问题的原因是什么?我该如何解决?

谢谢。

Debian GNU/Linux 5.0.6;

红宝石 1.9.2;

Ruby on Rails 3.0.0;

捆绑器 1.0.0;

黄瓜 0.8.5;

Cucumber-Rails 0.3.2。

4

1 回答 1

5

我也看到了同样的问题。通过一点狩猎,我可以弄清楚这个错误来自哪里,但仍然不知道如何解决它。

问题是“bundle exec ...”shell 调用以状态码“1”退出。这是 rake.rb 脚本的错误,因此它会抛出这些行。看起来这只是某种虚惊。

此外,只有当所有场景都通过时才会发生这种情况。即使只有一个故障,您也不会看到此错误。

于 2010-10-20T15:15:08.043 回答