【发布时间】:2014-08-22 13:25:34
【问题描述】:
我有一个在 jruby 中使用自写 gem 的项目(使用 rvm 在 jruby 之间切换)。使用 jruby-1.7.0,我可以使用 Test::Unit::TestCase 进行测试。现在我已经切换到 jruby-1.7.13 中的 MiniTest。但是我不能再用“rake test”运行我的测试了。
错误类似于 ... Mocha::ExpectationError: unexpected invocation: blabla.new() ... with blabla beeeing my jruby class
仅当我仅通过 TEST= 和 TESTOPTS= 参数运行它们以使用单个测试文件并通过 --name= (使用正则表达式)选择一个或一个视图测试时,它才有效。
我使用了一个帮助文件
require 'minitest/spec'
require 'minitest/autorun'
require 'mocha/integration'
class MiniTest::Test
end
而不是用于旧测试套件 Test::Unit::TestCase 的行
require 'test/unit'
require 'shoulda'
require 'mocha'
class Test::Unit::TestCase
end
MiniTest 的主要区别在于测试顺序。所以我试图通过定义 test_order 来规避随机化
class MiniTest::Test
def test_order
:alpha
end
end
这对测试顺序没有影响,但这真的有问题吗?这些错误似乎也伴随着测试套件中的测试。这是一个错误吗?请帮忙!
您也可以查看 require self made gem in jruby fails after update to jruby-1.7.13 对于我已经可以解决负载问题的重要帖子。
【问题讨论】:
-
您应该尝试隔离一个示例代码来重现这个(从您的“自己的”宝石中)......否则很难回答。您还可以尝试许多选项 - 1.7.0 上的 MiniTest、MRI 行为、更新 Mocha(下次请至少包含您正在使用的库的版本 - 和/或简单地提供回溯)
-
jruby-1.7.0 上的 MiniTest 会导致同样的问题。摩卡上下评级没有帮助。你对 MIR 行为是什么意思?我也使用 jirb 控制台进行测试。我现在将尝试使用纯 ruby 1.9.3 来检查 java 影响。不过明天会做。