Rails 5测试全局设置和拆卸

Bil*_*ill 7 ruby ruby-on-rails

我正在使用针对Rails 5 beta的开箱即用的香草测试套件。我想知道是否有人想出了如何运行全局设置并拆除的方法。

我要在开始任何测试之前启动内存中的Elasticsearch集群并在测试完成后停止集群,这是我需要这样做的原因。

Rspec不是一个选择。

Bor*_*aMa 5

在Minitest(这是Rails 4+中的默认测试环境)下,要获得“全局设置”行为,只需在您的程序test_helper.rb(测试本身或任何setup方法之外)中运行任何内容,即在您从中加载测试环境的文件中运行。测试中通常需要测试助手,因此其代码在任何测试之前运行一次。

对于“全局拆卸”,Minitest提供了Minitest.after_run方法。所有测试完成后,其块中的所有内容将运行一次(它使用程序出口挂钩)。例如将其test_helper再次放置。为此,您需要require 'minitest/autorun'在测试帮助文件的开头。


Art*_*jev 5

test/test_helper.rb

class ActiveSupport::TestCase
  setup do
    do_something
  end

  teardown do
    do_something
  end
end
Run Code Online (Sandbox Code Playgroud)

在模块中定义ActiveSupport::Testing。