Ruby unittest错误:“你应该要求’minitest / autorun’。”
我有一个非常简单的unit testing,我从http://en.wikibooks.org/wiki/Ruby_Programming/Unit_testing复制。
require_relative "simple_number" require "test/unit" class TestSimpleNumber < Test::Unit::TestCase def test_simple assert_equal(4, SimpleNumber.new(2).add(2) ) assert_equal(6, SimpleNumber.new(2).multiply(3) ) end end
执行此代码会导致错误:
Warning: you should require 'minitest/autorun' instead. Warning: or add 'gem "minitest"' before 'require "minitest/autorun"' From: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/test/unit.rb:3:in `' tc_simple_number.rb:5:in `' MiniTest::Unit::TestCase is now Minitest::Test. From /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/test/unit/testcase.rb:8:in `' /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/test/unit.rb:670:in `': undefined method `_run_suite' for class `Test::Unit::Runner' (NameError) from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/test/unit.rb:255:in `' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/test/unit.rb:9:in `' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/test/unit.rb:8:in `' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' from tc_simple_number.rb:5:in `'
可能有什么问题?
不推荐使用Test :: Unit :: TestCase,而选择Minitest :: Test。 如果你想让你的例子工作,你需要改变一些事情:
- 用
require "minitest/autorun"
替换require "test/unit"
require "minitest/autorun"
- 用
Minitest::Test
替换Test::Unit::TestCase with