Ski*_*ick 10 ruby-on-rails heroku ruby-on-rails-3
我已经向Heroku部署了一个应用程序,一切正常.问题是我无法远程运行我的单元测试.我试过了:
heroku rake test:units
Run Code Online (Sandbox Code Playgroud)
和
heroku rake db:test:prepare
Run Code Online (Sandbox Code Playgroud)
但对于我来说,我得到了一个巨大的堆栈跟踪,结束于:
rake aborted!
undefined method `[]' for nil:NilClass
/app/[id]/home/.bundle/gems/ruby/1.9.1/gems/activerecord-3.0.3/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'
Run Code Online (Sandbox Code Playgroud)
我正在运行bamboo-mri-1.9.2堆栈.
到目前为止,我最接近答案的是2009年的博客文章.
Heroku不提供测试数据库,因此没有直接的方法可以做到这一点.理论上你可以创建一个新的heroku实例并且可以将rake任务破解为仅仅使用'production'数据库,但是我怀疑所需的努力是值得的.
Heroku devcenter提供了有关如何管理暂存环境的说明:http://devcenter.heroku.com/articles/multiple-environments
我不知道是否可以运行单元测试,但我完全理解你为什么要这样做.
你的Heroku申请:
您可以使用暂存环境测试所有这些但我们可以说对于每个单元测试,所以我认为如果我们可以在Heroku上运行单元测试会很棒.
通常的方法是在本地进行测试,然后部署到隐藏的Heroku实例("staging").然后,您可以使用Beta测试人员测试该隐藏的临时应用程序,对其运行压力测试等等.如果您对此感到满意,请将您的应用程序部署到"生产"Heroku实例.
因此,在Heroku上进行测试是可能的,也可以是常规,但不能进行单元测试