我正在使用开箱即用的、香草的Rails 5 beta测试套件。我想知道是否有人已经想出了如何运行一个全球设置,并拆除。之所以需要这样做,是因为我在任何测试开始之前在内存中启动一个Elasticsearch集群,并在测试完成后停止集群。Rspec不是一个选项。
cwtwac6a1#
在Minitest(Rails 4+中的默认测试环境)下,要获得“全局设置”行为,只需运行test_helper.rb中的任何内容(测试本身或任何setup方法之外),即在加载测试环境的文件中。测试助手通常是测试中所必需的,因此它的代码在任何测试之前运行一次。对于全局拆卸,Minitest提供了Minitest.after_run方法。它的块中的任何东西都将在所有测试完成后运行一次(它使用程序退出钩子)。放置例如在test_helper中。为此,您需要在测试帮助文件的开头添加require 'minitest/autorun'。
test_helper.rb
setup
Minitest.after_run
test_helper
require 'minitest/autorun'
xxls0lw82#
test/test_helper.rb
class ActiveSupport::TestCase setup do do_something end teardown do do_something end end
https://github.com/rails/rails/blob/7c70791470fc517deb7c640bead9f1b47efb5539/activesupport/lib/active_support/testing/setup_and_teardown.rb
2条答案
按热度按时间cwtwac6a1#
在Minitest(Rails 4+中的默认测试环境)下,要获得“全局设置”行为,只需运行
test_helper.rb
中的任何内容(测试本身或任何setup
方法之外),即在加载测试环境的文件中。测试助手通常是测试中所必需的,因此它的代码在任何测试之前运行一次。对于全局拆卸,Minitest提供了
Minitest.after_run
方法。它的块中的任何东西都将在所有测试完成后运行一次(它使用程序退出钩子)。放置例如在test_helper
中。为此,您需要在测试帮助文件的开头添加require 'minitest/autorun'
。xxls0lw82#
test/test_helper.rb
https://github.com/rails/rails/blob/7c70791470fc517deb7c640bead9f1b47efb5539/activesupport/lib/active_support/testing/setup_and_teardown.rb