在更新为jruby-1.7.13后,jruby中需要自制的gem失败

时间:2014-08-13 14:24:04

标签: ruby unit-testing gem rvm jruby

我使用jruby-1.7.0和测试框架工作Test :: Unit :: TestCase。现在我更新了一些导致我使用MiniTest :: Test进行测试的宝石,所以我也升级到了jruby-1.7.13。我也有一个rake任务,用java * .class文件而不是ruby * .rb文件构建我的gem。现在很多东西不再像'rake test'那样工作,或者需要来自irb的“my_gem_xyz”,得到像load error和ArrayIndexOutOfBoudsException这样的错误。我安装了rvm以在红宝石之间切换。

如何在我自制的宝石中使用* .class文件,就像之前在jruby-1.7.0下使用的那样? (如果我在gem中包含* .rb文件,它似乎工作正常)

前段时间我尝试过使用jruby-1.7.4,但也因类似的原因失败了(当时我还是使用了Test :: Unit :: TestCase,所以测试帧的工作不是问题)

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我找到了一个令人惊讶的解决方案。我用jruby版本1.7.0的jrubyc编译了* .rb类。这导致测试因加载错误而失败。我必须使用jrubyc版本1.7.13编译所有ruby类,我还构建了宝石。

更新

  

'rake test'仍然无法解决像Mocha :: ExpectationError这样的错误:意外调用:...

什么有效是使用指定测试文件和测试名称的测试选项(也与reg.exp。一样)

  

rake test TEST = test / test_bla_bla.rb TESTOPTS =“ - name = / test_should_read / -v”

我感觉随机种子参数的随机化会导致问题。我如何影响种子参数?

更新

看起来测试套件中的测试太多,MiniTest无法处理。在某些情况下,我可以使用TESTOPTS开关在最多35个测试中运行大约10个测试。如果我使用'rake test'在我的测试库中运行所有测试,我总是会失败。对我来说这看起来像个错误。有人可以提供帮助吗?