使用Bundler和Cucumber与Rails 3时遇到问题。
当我运行$ 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 default (in /home/<username>/practice/rails/blog) Using the default profile... UUUU 1 scenario (1 undefined) 4 steps (4 undefined) 0m1.552s You can implement step definitions for undefined steps with these snippets: Given /^a post$/ do pending # express the regexp above with the code you wish you had end Given /^a name was specified$/ do pending # express the regexp above with the code you wish you had end When /^I save the post$/ do pending # express the regexp above with the code you wish you had end Then /^the post should be saving$/ do pending # express the regexp above with the code you wish you had end rake aborted! Command failed with status (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 `each' /usr/local/lib/ruby/1.9.1/rake.rb:629:in `execute' /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 `each' /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 `each' /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:in `run' /usr/local/bin/rake:31:in `'
尽管有这样的输出我的功能正常,当我添加步骤定义并传递它们时,所有更改都会在控制台中正确显示。
这是我的Gemfile:
group :development, :test do gem 'cucumber-rails' gem 'rspec-rails', '>= 2.0.0.beta.22' gem 'Selenium' gem 'thin' gem 'webrat' end
我想注意,如果我使用bundle exec cucumber
或cucumber features/
命令,我不会收到任何错误消息。
这个问题的原因是什么?我该如何解决?
感谢。
Debian GNU / Linux 5.0.6;
Ruby 1.9.2;
Ruby on Rails 3.0.0;
Bundler 1.0.0;
黄瓜0.8.5;
Cucumber-Rails 0.3.2。
答案 0 :(得分:5)
我也看到了同样的问题。通过一点点狩猎我可以知道这个错误即将到来但仍然不知道如何解决它。
问题是“bundle exec ...”shell调用正在退出,状态代码为“1”。这是rake.rb脚本的错误,因此抛出这些行。看起来它只是一种误报。
此外,只有在所有方案都通过后才会发生这种情况。如果甚至出现一次故障,您将看不到此错误。