我希望能够在Heroku上的staging应用程序上运行rspec和cucumber.我有一个单独的生产应用程序,我将我的开发分支推送到临时和我的主分支到生产.
我已将RACK_ENV变量设置为’staging’,并且还添加了staging.rb配置文件.
在本地运行rspec和黄瓜:
rspec和黄瓜在本地使用命令运行良好
$rspec spec
..
$cucumber features
在Heroku登台应用程序上运行rspec
问题是我不能让他们在我的Heroku登台应用程序上运行.我知道在Heroku上使用rspec的正确方法是:
$heroku rake spec --remote staging
每当我运行此操作时,我会收到以下错误:
rake aborted! You have a nil object when you didn't expect it! You might have expected an instance of Array. The error occurred while evaluating nil.[] /app/.bundle/gems/ruby/1.9.1/gems/activerecord-3.0.7/lib/active_record/railties/databases.rake:429:in `block (3 levels) in <top (required)>' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:634:in `call' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:634:in `block in execute' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:629:in `each' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:629:in `execute' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:595:in `block in invoke_with_call_chain' /usr/ruby1.9.2/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:605:in `block in invoke_prerequisites' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:602:in `each' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:602:in `invoke_prerequisites' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:594:in `block in invoke_with_call_chain' /usr/ruby1.9.2/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:581:in `invoke' /app/.bundle/gems/ruby/1.9.1/gems/activerecord-3.0.7/lib/active_record/railties/databases.rake:460:in `block (3 levels) in <top (required)>' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:634:in `call' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:634:in `block in execute' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:629:in `each' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:629:in `execute' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:595:in `block in invoke_with_call_chain' /usr/ruby1.9.2/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:605:in `block in invoke_prerequisites' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:602:in `each' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:602:in `invoke_prerequisites' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:594:in `block in invoke_with_call_chain' /usr/ruby1.9.2/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:581:in `invoke' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2041:in `invoke_task' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2019:in `block (2 levels) in top_level' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2019:in `each' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2019:in `block in top_level' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2013:in `top_level' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:1992:in `run' /usr/ruby1.9.2/bin/rake:31:in `<main>' (in /app)
在Heroku登台应用程序上运行黄瓜
同理:
$heroku rake cucumber --remote staging
结果是:
rake aborted! You have a nil object when you didn't expect it! You might have expected an instance of Array. The error occurred while evaluating nil.[] /app/.bundle/gems/ruby/1.9.1/gems/activerecord-3.0.7/lib/active_record/railties/databases.rake:429:in `block (3 levels) in <top (required)>' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:634:in `call' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:634:in `block in execute' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:629:in `each' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:629:in `execute' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:595:in `block in invoke_with_call_chain' /usr/ruby1.9.2/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:605:in `block in invoke_prerequisites' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:602:in `each' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:602:in `invoke_prerequisites' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:594:in `block in invoke_with_call_chain' /usr/ruby1.9.2/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:581:in `invoke' /app/.bundle/gems/ruby/1.9.1/gems/activerecord-3.0.7/lib/active_record/railties/databases.rake:460:in `block (3 levels) in <top (required)>' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:634:in `call' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:634:in `block in execute' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:629:in `each' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:629:in `execute' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:595:in `block in invoke_with_call_chain' /usr/ruby1.9.2/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:605:in `block in invoke_prerequisites' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:602:in `each' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:602:in `invoke_prerequisites' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:594:in `block in invoke_with_call_chain' /usr/ruby1.9.2/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:605:in `block in invoke_prerequisites' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:602:in `each' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:602:in `invoke_prerequisites' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:594:in `block in invoke_with_call_chain' /usr/ruby1.9.2/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:581:in `invoke' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2041:in `invoke_task' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2019:in `block (2 levels) in top_level' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2019:in `each' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2019:in `block in top_level' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2013:in `top_level' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:1992:in `run' /usr/ruby1.9.2/bin/rake:31:in `<main>' (in /app)