Ruby on Rails。捆绑器。黄瓜。耙中止!命令失败,状态为 (1)

Posted

技术标签:

【中文标题】Ruby on Rails。捆绑器。黄瓜。耙中止!命令失败,状态为 (1)【英文标题】:Ruby on Rails. Bundler. Cucumber. rake aborted! Command failed with status (1) 【发布时间】:2011-04-14 00:31:15 【问题描述】:

在 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 您可以使用这些 sn-ps 为未定义的步骤实现步骤定义: 给定 /^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 cucumbercucumber 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.

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

如果您已经在源代码中发现了问题,那么您绝对应该将其报告为黄瓜上的错误。 :) 原来是 cucumber.yml 和未定义任务中的 --strict 指定。查看此处打开的错误:rspec.lighthouseapp.com/projects/16211/tickets/…

以上是关于Ruby on Rails。捆绑器。黄瓜。耙中止!命令失败,状态为 (1)的主要内容,如果未能解决你的问题,请参考以下文章

ruby on rails - 问题捆绑安装nokogiri 1.7.2 on ruby on rails 4.x.

Ruby on rails 中的捆绑错误

耙中止! ExecJS::RuntimeError: (execjs):1

ruby on rails 4 - 捆绑安装grape-jbuilder

使用 Ruby On Rails 4.2.5.1 我可以 gem install therubyracer 但捆绑包在 OS X 10.11.1 上失败

耙中止! NameError: uninitialized constant even add :environment to task