我想有一个方法,每个文件运行一次而不是每次测试一次。我看过一些对“之前”方法的引用,但似乎不适用于MiniTest。理想情况下,这样的事情:
class MyTest < ActiveSupport::TestCase
before do
# Executes once per file
end
setup do
# Executes once per test
end
# Tests go here
end
答案 0 :(得分:4)
在使用spec dsl for minitest时使用之前,它等同于设置。 您可以使用设置,如果您在test_helper.rb文件中使用安装程序,它将在所有测试之前执行一次。
setup也可以在测试类中声明。使用设置,放置标志并在第一时间更新标志。
x = 0
setup do
if x == 0
x = x + 1
puts "Incremented in x = #{x}"
end
end
OR
setup_executed = false
setup do
unless setup_executed
#code goes here
setup_executed = true
end
end
答案 1 :(得分:1)
您可以在类定义之外添加代码。
# Executes once per file
puts "Executed once"
class MyTest < ActiveSupport::TestCase
setup do
# Executes once per test
end
# Tests go here
end
您也可以在类定义中添加代码,但不在任何方法之外:
class MyTest #< ActiveSupport::TestCase
# Executes once per Testclass
puts "Executed once"
setup do
# Executes once per test
end
# Tests go here
end