0

我有一个依赖于flexmock. 出于多种原因,我希望这个应用程序在 1.8.7 到 2.0.0 及更高版本上运行,到目前为止它运行得非常好。由于该应用程序具有庞大的测试套件,因此很容易保持兼容性。

唯一的问题是flexmock。旧版本的 flexmock 中有一个错误,我必须使用猴子补丁来解决。较新版本的 flexmock 修复了该错误,但它仅适用于 1.9.3。我使用的较旧版本的 flexmock 在 2.0.0 上也会导致测试失败,因为它错误地记录了诸如 Time 之类的方法调用的数量。

是否有一个神奇的 Bundler 咒语,我可以使用它来修改我的开发依赖项,以便它们为我运行的每个 Ruby 版本提供相关版本?特别是让它在 Travis-Ci 上运行干净?

我没有版本控制Gemfile.lock

4

1 回答 1

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上查看更多信息

于 2013-03-15T23:12:39.590 回答