7

我需要在 MiniTest 中的所有测试中的每个测试之前运行代码。

在我做之前:

MiniTest::Unit::TestCase.add_setup_hook do
   ...code to run before each test
end

在我将 MiniTest 升级到 4.7.2 版本后,它显示以下错误:

undefined method `add_setup_hook' for MiniTest::Unit::TestCase:Class (NoMethodError)

我正在使用 Ruby MRI 2.0.0p0。

解决方案

module MyMinitestPlugin
  def before_setup
    super
    # ...code to run before all test cases
  end

  def after_teardown
    # ... code to run after all test cases
    super
  end
end

class MiniTest::Unit::TestCase
  include MyMinitestPlugin
end
4

3 回答 3

6

add_setup_hook在 4.6.0 中被删除。 https://github.com/seattlerb/minitest/commit/792a480ebeb32983b9150adae575b7c396e2ae63

改为使用before_setup

于 2013-04-20T08:40:57.600 回答
2

我认为您正在寻找setup()方法。

于 2013-04-20T08:18:28.123 回答
0

2019 年更新

不要为此编写插件,插件适用于扩展 Minitest 功能的 gem,而不是测试作者。

如果您编写 Minitest Specs,则可以改为执行以下操作:

class Minitest::Spec
  before :each do
    [do stuff]
  end
end
于 2019-10-25T10:42:00.757 回答