Я знаю. Это не приветствуется. По причинам, которые я не буду вдаваться в подробности, мне нужно запускать тесты в том порядке, в котором они написаны. Согласно документации, если мой тестовый класс (мы назовем его TestClass) расширяет Minitest :: Unit :: TestCase, то я смогу вызвать общедоступный метод i_suck_and_my_tests_are_order_dependent!
(Как вы думаете, у парня, создавшего Minitest, было мнение по этому поводу?). Кроме того, есть возможность вызвать метод с именем test_order
и указать : alpha
, чтобы переопределить поведение по умолчанию : random
. Ни один из них не работает для меня.
Вот пример:
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
Мой тест запускается, но я могу сказать из put
для каждого метода, что все по-прежнему выполняется в случайном порядке каждый раз, когда я запускаю тесты.
Кто-нибудь знает, что я делаю не так? Спасибо.