Parece que la nariz, en realidad el complemento multiproceso, hará que la prueba se ejecute en paralelo. La advertencia es que la forma en que funciona, puede terminar sin ejecutar la prueba en múltiples procesos. El complemento crea una cola de prueba, genera múltiples procesos y luego cada proceso consume la cola al mismo tiempo. No hay despacho de prueba para cada proceso, por lo tanto, si su prueba se ejecuta muy rápido, podrían terminar ejecutándose en el mismo proceso.
El ejemplo siguiente muestra este beaviour:
test1.py File
import os
import unittest
class testProcess2(unittest.TestCase):
def test_Dummy2(self):
self.assertEqual(0, os.getpid())
test2.py File
import os
import unittest
class testProcess2(unittest.TestCase):
def test_Dummy2(self):
self.assertEqual(0, os.getpid())
Correr nosetests --processes = 2 salidas (notar el proceso idéntico id)
FF
======================================================================
FAIL: test_Dummy2 (test1.testProcess2)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\temp\test1.py", line 7, in test_Dummy2
self.assertEqual(0, os.getpid())
AssertionError: 0 != 94048
======================================================================
FAIL: test_Dummy1 (test2.testProcess1)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\temp\test2.py", line 8, in test_Dummy1
self.assertEqual(0, os.getpid())
AssertionError: 0 != 94048
----------------------------------------------------------------------
Ran 2 tests in 0.579s
FAILED (failures=2)
Ahora bien, si añadimos un sueño en una de las pruebas
import os
import unittest
import time
class testProcess2(unittest.TestCase):
def test_Dummy2(self):
time.sleep(1)
self.assertEqual(0, os.getpid())
Obtenemos (notar la diferente identificador de proceso)
FF
======================================================================
FAIL: test_Dummy1 (test2.testProcess1)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\temp\test2.py", line 8, in test_Dummy1
self.assertEqual(0, os.getpid())
AssertionError: 0 != 80404
======================================================================
FAIL: test_Dummy2 (test1.testProcess2)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\temp\test1.py", line 10, in test_Dummy2
self.assertEqual(0, os.getpid())
AssertionError: 0 != 92744
----------------------------------------------------------------------
Ran 2 tests in 1.422s
FAILED (failures=2)
¿Cómo estás determinar si paralelará en absoluto? Tengo un objetivo similar pero creo * Tengo un problema diferente para ti ... posiblemente no. – fholo