我知道。这是不鼓励的。由于我不会涉及的原因,我需要按照他们编写的顺序运行我的测试。根据文档,如果我的测试类(我们称之为TestClass)扩展了Minitest :: Unit :: TestCase,那么我应该可以调用公共方法i_suck_and_my_tests_are_order_dependent!
(Gee - 你认为创建Minitest的人有一个对那个人的意见?)。此外,还可以选择调用称为test_order
的方法,并指定:alpha
覆盖:random
的默认行为。这些都不适合我。我如何有效地强制Minitest按顺序运行我的测试?
下面是一个例子:
class TestClass < Minitest::Unit::TestCase
#override random test run ordering
i_suck_and_my_tests_are_order_dependent!
def setup
...setup code
end
def teardown
...teardown code
end
def test_1
test_1 code....
assert(stuff to assert here, etc...)
puts 'test_1'
end
def test_2
test_2_code
assert(stuff to assert here, etc...)
puts 'test_2'
end
end
当我跑,我得到:
undefined method `i_suck_and_my_tests_are_order_dependent!' for TestClass:Class (NoMethodError)
如果我更换一个方法i_suck
方法调用在上面一拉:
def test_order
:alpha
end
我的测试运行,但我可以从puts
知道每种方法,仍然是事物每次运行测试时都以随机顺序进行。
有谁知道我在做什么错? 谢谢。
同意;不要使用内置的minitest。使用宝石。 – naomik 2013-08-24 20:58:42
n.b.这被重新命名为https://github.com/seattlerb/minitest/pull/400 – 2017-05-17 20:29:25
Aww。我喜欢那个名字。 – 2017-05-18 00:28:19