为什么我需要使用 minitest/autorun?

Why do i need to use minitest/autorun?

为什么我需要 minitest/autorun 而不是 test/unit 来生成单元测试

require 'test/unit'

class Brokened
  def uh_oh
    "I needs fixing"
  end
end

class BrokenedTest < Minitest::Test
  def test_uh_of
    actual = Brokened.new
    assert_equal("I'm all better now", actual.uh_oh)
  end
end

Running the above code, interpreter raise warning

You should require 'minitest/autorun' instead

您的代码示例将以 NameError 结尾:uninitialized constant Minitest.

你有两种可能:

  • test/unitTest::Unit::TestCase
  • 结合使用
  • 结合使用require 'minitest/autorun'Minitest::Test

test/unit 已弃用,推荐使用minitest(MiniTest更快更小)。

如果您切换测试 gem,您可能还必须更改更多内容:

  • require "test/unit"替换为require "minitest/autorun"
  • Test::Unit::TestCase with替换为Minitest::Test
  • 没有assert_nothing_raised (details)
  • assert_raise 变为 assert_raises.
  • 可能还有一些其他问题

您可以使用 require 'minitest' 而不是 require 'minitest/autorun' - 您不会遇到语法错误,但也不会执行测试。如果你想执行测试,你必须自己调用它们(参见minitest-a-test-suite-with-method-level-granularity