que intentaron una combinación de TestSuite
y Thread
:
gem 'test-unit'
require 'test/unit'
require 'test/unit/ui/console/testrunner'
# we're running the tests, so we don't want Test::Unit to automatically run everything for us. See http://www.natontesting.com/2009/07/21/stop-rubys-testunit-suite-files-running-all-your-tests/
Test::Unit.run = true
class MyTest < Test::Unit::TestCase
def test_1()
assert_equal(2, 1+1)
end
def test_2()
assert_equal(2, 4/2)
end
def test_3()
assert_equal(1, 3/2)
end
def test_4()
assert_equal(1.5, 3/2.0)
end
end
#create TestSuites.
test_1 = Test::Unit::TestSuite.new("Test 1")
test_1 << MyTest.new('test_1')
#Same a bit shorter
test_2 = Test::Unit::TestSuite.new("Test 2") << MyTest.new('test_2')
test_3 = Test::Unit::TestSuite.new("Test 3") << MyTest.new('test_3')
test_4 = Test::Unit::TestSuite.new("Test 4") << MyTest.new('test_4')
#run the suites
Thread.new{Test::Unit::UI::Console::TestRunner.run(test_1)}
Thread.new{Test::Unit::UI::Console::TestRunner.run(test_2)}
Thread.new{Test::Unit::UI::Console::TestRunner.run(test_3)}
Thread.new{Test::Unit::UI::Console::TestRunner.run(test_4)}
Se ve bien, pero no hice las pruebas de referencia.
La salida (ver abajo) es un poco caótica, cada hilo está publicando sus mensajes en el mensaje de otros hilos, pero parece funcionar correctamente. Así que tal vez deba capturar la salida de cada hilo para obtener mejores registros de prueba.
Loaded suite Test 4Loaded suite Test 1Loaded suite Test 2Loaded suite Test 3
Started
Started
.
Started
.
Started
.
.
Finished in 0.328125 seconds.
Finished in 0.328125 seconds.
1 tests, 1 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
Finished in 0.765625 seconds.
Finished in 0.546875 seconds.
100% passed
1 tests, 1 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
3.05 tests/s, 3.05 assertions/s
100% passed
1 tests, 1 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
1 tests, 1 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
3.05 tests/s, 3.05 assertions/s
100% passed
100% passed
Puedo confirmar que parallel_tests funciona en el nivel de archivo, que no es lo que quiere aquí, pero es muy bueno en lo que hace. – x1a4