Как сделать Я фактически заставляю Minitest запускать мои тесты по порядку?

Я знаю. Это не приветствуется. По причинам, которые я не буду вдаваться в подробности, мне нужно запускать тесты в том порядке, в котором они написаны. Согласно документации, если мой тестовый класс (мы назовем его 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 для каждого метода, что все по-прежнему выполняется в случайном порядке каждый раз, когда я запускаю тесты.

Кто-нибудь знает, что я делаю не так? Спасибо.

7
задан Ciro Santilli 新疆改造中心法轮功六四事件 24 August 2013 в 20:51
поделиться