如何在文件中运行普通代码之前运行MiniTest测试?

时间:2013-11-19 18:59:21

标签: ruby minitest

我想更改以下代码

load "API.rb"
require 'minitest/spec'
require 'minitest/autorun'

class Test < MiniTest::Unit::TestCase
  MiniTest::Assertions.diff = nil
  def setup
  end

  def test_character_detection
    assert_equal "Gandalf", Story.get_first_character(2717)
  end
end

puts "TEST"

所以测试将在普通代码之前运行(在这种情况下 - 'puts“TEST”')。

1 个答案:

答案 0 :(得分:1)

对不起,迟到了。 Minitest很巧妙。

minitest/autorun使用at_exit方法。当解释器的工作几乎完成时,它执行给定的块。粗略地说“程序终生”的“最后”。虽然您可以多次调用at_exit方法,但块将以LIFO顺序执行。


有关at_exit的更多有趣详情及其使用情况here

你也可以看一下minitests source code。 (在此文件at_exit中调用)

祝你好运!