【问题标题】:require self made gem in jruby fails after update to jruby-1.7.13更新到 jruby-1.7.13 后,需要 jruby 中的自制 gem 失败
【发布时间】:2014-10-06 23:10:48
【问题描述】:

我使用了 jruby-1.7.0 和测试框架工作 Test::Unit::TestCase。现在我更新了一些让我使用 MiniTest::Test 进行测试的 gem,所以我也升级到了 jruby-1.7.13。我也有一个 rake 任务,它使用 java *.class 文件而不是 ruby​​ *.rb 文件构建我的 gem。现在很多事情不再像“rake test”那样工作了,或者需要 irb 的“my_gem_xyz”,得到诸如加载错误和 ArrayIndexOutOfBoudsException 之类的错误。我安装了 rvm 来在 rubies 之间切换。

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

前段时间我尝试使用jruby-1.7.4,但同样失败了(当时我还在使用Test::Unit::TestCase,所以测试框架工作不是问题)

有什么想法吗?

弗兰克

【问题讨论】:

    标签: ruby unit-testing gem rvm jruby


    【解决方案1】:

    我发现了一个令人惊讶的解决方案。我已经用我的 jruby 1.7.0 版的 jrubyc 编译了 *.rb 类。这导致测试因加载错误而失败。我必须使用 jrubyc 版本 1.7.13 编译所有 ruby​​ 类,并在其中构建 gem。

    更新:

    'rake test' 仍然无法正常工作,出现 Mocha::ExpectationError: unexpected invocation: ... 之类的错误。

    有效的方法是使用指定测试文件和测试名称(也与 reg.exp.)类似的测试选项

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

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

    更新:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-08
      • 1970-01-01
      • 2015-03-28
      • 1970-01-01
      相关资源
      最近更新 更多