我将rails 2.3.8 app升级到rails 3.当我运行rake db:reset命令时,它返回以下错误
耙子中止了! 测试单元不是捆绑包的一部分。将其添加到Gemfile。 / Users / Shenario / Desktop / stack24 / Rakefile:7:in'' (通过使用--trace运行任务查看完整跟踪)
我是铁杆的新手,如果你们出去帮助我,我们会很高兴!谢谢!
追踪 -
耙子流产了! 测试单元不是捆绑包的一部分。将其添加到Gemfile。 /Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.7/lib/bundler/shared_helpers.rb:102:inblock in cripple_rubygems'
/Users/Shenario/Desktop/stack24/lib/tasks/rspec.rake:1:in
'
/Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/engine.rb:131:in load'
/Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/engine.rb:131:in
块中的load_tasks'
/Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/engine.rb:131:in each'
/Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/engine.rb:131:in
load_tasks'
/Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/application.rb:141:in load_tasks'
/Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/application.rb:77:in
method_missing'
/ Users / Shenario / Desktop / stack24 / Rakefile:7:in <top (required)>'
/Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake.rb:2383:in
load'
/Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake.rb:2383:in raw_load_rakefile'
/Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake.rb:2017:in
块中的load_rakefile'
/Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake.rb:2068:in standard_exception_handling'
/Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake.rb:2016:in
load_rakefile'
/Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake.rb:2000:in block in run'
/Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake.rb:2068:in
standard_exception_handling'
/Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/lib/rake.rb:1998:in run'
/Users/Shenario/.rvm/gems/ruby-1.9.2-p136/gems/rake-0.8.7/bin/rake:31:in
'
/Users/Shenario/.rvm/gems/ruby-1.9.2-p136/bin/rake:19:in load'
/Users/Shenario/.rvm/gems/ruby-1.9.2-p136/bin/rake:19:in
'
答案 0 :(得分:4)
搜索“test-unit”后,找到了:
gem 'test-unit', '2.0.7' if RUBY_VERSION.to_f >= 1.9
在lib / tasks / rspec.rake
中我怀疑这是因为我将整个lib文件夹从较旧的rails版本复制到这个新版本。
解决方案:删除该文件,然后事情似乎工作正常。
基本上我建议您查看lib / tasks并查看是否存在与rails 3不兼容的rake任务。
答案 1 :(得分:0)
你必须至少
gem "rails", "~> 3.0.3"
在你的Gemfile中,然后删除Gemfile.lock(如果有的话)并运行:
bundle check
如果你需要一些遗失的宝石,请运行:
bundle install
bundler将至少为rails 3.0.3安装所有必需的gem,包括test-unit gem。顺便说一下,在大多数情况下从rails 2.3.x迁移到3.0.x需要进行一些代码更改。
答案 2 :(得分:0)
将其添加到Gemfile中(用所需的版本号替换VERSION)。
gem 'test-unit', 'VERSION', :platform => :ruby_19
对于Rails 2.3.11,我需要测试单元gem的1.2.3版本。