Ruby:Test::Unit::Runner类的未定义方法“%u run\u suite”
我尝试使用命令行命令ruby unit_test.rb运行此代码:Ruby:Test::Unit::Runner类的未定义方法“%u run\u suite”,ruby,Ruby,我尝试使用命令行命令ruby unit_test.rb运行此代码: # unit_test.rb require 'test/unit' class TestWordsFromString < Test::Unit::TestCase def test_smth assert_equal([], []) end end 我收到以下错误: Warning: you should require 'minitest/autorun' instead. Warning: or
# unit_test.rb
require 'test/unit'
class TestWordsFromString < Test::Unit::TestCase
def test_smth
assert_equal([], [])
end
end
我收到以下错误:
Warning: you should require 'minitest/autorun' instead.
Warning: or add 'gem "minitest"' before 'require "minitest/autorun"'
From:
/Users/User/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/test/unit.rb:1:in `<top (required)>'
unit_tests.rb:1:in `<main>'
MiniTest::Unit::TestCase is now Minitest::Test. From /Users/User/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/test/unit/testcase.rb:8:in `<module:Unit>'
/Users/User/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/test/unit.rb:676:in `<class:Runner>': undefined method `_run_suite' for class `Test::Unit::Runner' (NameError)
from /Users/User/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/test/unit.rb:261:in `<module:Unit>'
from /Users/User/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/test/unit.rb:15:in `<module:Test>'
from /Users/User/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/test/unit.rb:7:in `<top (required)>'
from /Users/User/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/User/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from unit_tests.rb:1:in `<main>'
我尝试的是:
1.添加要求“微型测试/自动运行”
2.改为使用bundle exec ruby unit_tests.rb命令运行测试。
3.安装gem“minitest”
这两种解决方案都不起作用。也许我只是做错了测试?我正在阅读《Ruby编程》一书。答案很简单:
Ruby 1.9.x捆绑包minitest而不是Test::Unit。测试::单元绑定在Ruby中
1.8.x尚未改进,但未绑定测试::单元测试单元正在积极改进
刚刚在RVM上安装了Ruby 1.9,现在一切正常 遇到了示例问题。谢谢你的帖子,它为我指明了正确的方向。只需切换到使用minitest,就可以继续使用Ruby1.9.x 将要求“测试/单元”更改为要求“小型测试/自动运行” 将类TestWordsFromString