MiniTest并行运行我的测试用例。有没有办法强制按顺序运行测试用例?
def test_1
end
def test_2
end
如何在test_2之前强制test_1运行?
答案 0 :(得分:21)
您可以使用i_suck_and_my_tests_are_order_dependent!()
class method。
class MyTest < MiniTest::Unit::TestCase
i_suck_and_my_tests_are_order_dependent! # <----
def test_1
p 1
end
def test_2
p 2
end
end
但顾名思义,让测试依赖于订单并不是一个好主意。
答案 1 :(得分:2)
如果你想强制进行有序测试,尽管这样做很脆弱,你可以调用Minitest::Test#i_suck_and_my_tests_are_order_dependent!。文档说:
当你绝对需要进行有序测试时,请在测试的顶部调用它。这样做,你承认你很糟糕,你的测试很弱。
测试用例应该是独立的。依赖于顺序的测试是一种代码味道,MiniTest方法的固定名称使得MiniTest作者认为您需要使用代码执行其他操作时非常清楚。
状态应该在setup和teardown块中定义,而不是在测试排序中定义。 YMMV。