我有一个依赖于flexmock
的应用程序。出于多种原因,我希望这个应用程序在1.8.7到2.0.0及更高版本上运行,到目前为止它运行得非常好。由于该应用程序具有庞大的测试套件,因此很容易保持兼容性。
唯一的问题是flexmock
。旧版本的flexmock中存在一个错误,我必须使用monkeypatch进行处理。较新版本的flexmock修复了这个bug,但它只适用于1.9.3。我使用的旧版flexmock也在2.0.0上提供了测试失败,因为它错误地记录了像Time这样的类的方法调用次数。
我是否有一个神奇的Bundler咒语可用于修改我的开发依赖项,以便它们为我运行的每个Ruby版本提供相关版本?特别是让它在Travis-Ci上运行干净?
我没有版本控制Gemfile.lock
答案 0 :(得分:0)
您应该将flexmock
版本分组,然后在bundle install
时,您可以排除不需要的群组,因此:
group :ruby18 do
gem 'flexmock', ~> oldversion
end
groups :ruby19 do
gem 'flexmock', ~> newversion
end
然后当您在1.8中运行应用程序时,您可以bundle install --without ruby19
,反之亦然,对于ruby 1.9+。请点击http://gembundler.com/v1.3/groups.html