Lo sé. Esto esta desaconsejado Por razones que no entraré, necesito ejecutar mis pruebas en el orden en que fueron escritas. De acuerdo con la documentación, si mi clase de prueba (la llamaremos TestClass) extiende Minitest :: Unit :: TestCase, entonces debería poder llamar al método público i_suck_and_my_tests_are_order_dependent!
(Gee - ¿crees que el tipo que creó Minitest tenía un opinión sobre eso?). Además, también existe la opción de llamar a un método llamado test_order
y especificar :alpha
para anular el comportamiento predeterminado de :random
. Ninguno de estos me funciona.¿Cómo forzo efectivamente a Minitest a ejecutar mis pruebas en orden?
He aquí un ejemplo:
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
Cuando ejecuto esto, me sale:
undefined method `i_suck_and_my_tests_are_order_dependent!' for TestClass:Class (NoMethodError)
Si se sustituye la llamada i_suck
método con un método en la parte superior a la:
def test_order
:alpha
end
Mi prueba se ejecuta, pero puedo decir desde el puts
para cada método que las cosas todavía están r desactivé en orden aleatorio cada vez que ejecuto las pruebas.
¿Alguien sabe lo que estoy haciendo mal? Gracias.
De acuerdo; no use la minitest incorporada. Usa la gema – naomik
n.b. esto fue renombrado https://github.com/seattlerb/minitest/pull/400 –
Aww. Me encantó ese nombre. –