Ruby Rake测试:Gem负载错误
我定义了一个简单的rake任务来运行我的ruby测试,但是存在一个问题,rake没有使用Gemfile中定义的版本加载gem。它得到一个Ruby Rake测试:Gem负载错误,ruby,gem,rake,Ruby,Gem,Rake,我定义了一个简单的rake任务来运行我的ruby测试,但是存在一个问题,rake没有使用Gemfile中定义的版本加载gem。它得到一个Gem::LoadError。有没有办法告诉rake使用哪个gem版本 以下是安装在我的系统上的gems: addressable (2.2.6, 2.2.4) bundler (1.0.15) libarchive (0.1.2) nokogiri (1.5.0) rake (0.9.2, 0.8.7) rdf (0.3.3) 这是我的档案: source
Gem::LoadError
。有没有办法告诉rake使用哪个gem版本
以下是安装在我的系统上的gems:
addressable (2.2.6, 2.2.4)
bundler (1.0.15)
libarchive (0.1.2)
nokogiri (1.5.0)
rake (0.9.2, 0.8.7)
rdf (0.3.3)
这是我的档案:
source :rubygems
gem 'nokogiri', '1.5.0'
gem 'rdf', '0.3.3'
gem 'addressable', '2.2.4'
gem 'libarchive', '0.1.2'
这里是rake任务:
require 'rake/testtask'
task :default => [:test]
desc "Run basic tests"
Rake::TestTask.new do |test|
test.libs << "test"
test.test_files = Dir["test/test_*.rb"]
test.verbose = true
end
我可以通过卸载可寻址2.2.6
来解决这个问题,但我需要另一个项目的gem的never版本
另一个解决方案可能是使用rvm Gemset。但是,使用给定的Gemfile规范运行rake难道不简单吗
谢谢我认为布赖恩的建议确实应该起到关键作用:
bundle exec rake <task>
有关更多信息,请参阅。请注意,后一种解决方案仍然需要bundle exec
方法来避免gem冲突
希望这有帮助
彼得使用RVM宝石(http://beginrescueend.com/gemsets/basics/)这可能是处理项目间gem版本控制冲突的最佳方法。对于我的场景,它是有效的…bundle exec rake是否有效?我为我的项目设置了不同的rvm gemeset。现在它工作了。。。
bundle exec rake <task>
bundle install --path=.bundler