Ruby Minitest框架的Before / After方法

时间:2013-11-07 10:09:07

标签: ruby minitest

我使用的是最新版本的Ruby(2.0.0)和Minitest(5.0.8)。

我正在寻找一种创建2种方法的方法,包括之前和之后。 before方法应该在Minitest甚至在测试用例上启动之前运行,并且应该在测试的 ALL 完成之后运行。

我已经使用了在每次单独测试之前和之后运行的setup()和teardown()方法,但我正在寻找包含整个Minitest套件的东西。

我见过:

Ruby Minitest: Suite- or Class- level setup?

Before/After Suite when using Ruby MiniTest

Minitest的最新版本都已过时。

这还有可能吗?

2 个答案:

答案 0 :(得分:5)

before方法很简单,您只需将测试设置配置为在Minitest启动之前调用方法。

可以使用Minitest API提供的方法after来实现Minitest.after_run(&block)方法。例如:

Minitest.after_run do
  puts 'All tests finished'
  my_method_call()
end

答案 1 :(得分:0)

你可能想看看minitest-hooks。 minitest-hooks使用before(:all)after(:all)扩展minitest,当你描述块的结构是平的时,它会做你想要的。如果您有嵌套的描述块,则可能需要an approach that is similar to Thiago's answer