Es scheint, dass Nase, eigentlich das Multiprocess Plugin, Test parallel laufen lässt. Der Vorbehalt ist, dass die Art und Weise, wie es funktioniert, Sie am Ende keine Tests für mehrere Prozesse ausführen können. Das Plugin erstellt eine Testwarteschlange, erstellt mehrere Prozesse, und dann verarbeitet jeder Prozess die Warteschlange gleichzeitig. Es gibt keinen Testversand für jeden Prozess. Wenn Ihr Test also sehr schnell ausgeführt wird, könnte er im selben Prozess ausgeführt werden.
Das folgende Beispiel zeigt diese beaviour:
Datei test1.py
import os
import unittest
class testProcess2(unittest.TestCase):
def test_Dummy2(self):
self.assertEqual(0, os.getpid())
Datei test2.py
import os
import unittest
class testProcess2(unittest.TestCase):
def test_Dummy2(self):
self.assertEqual(0, os.getpid())
nosetests --processes = 2 Ausgänge Lauf (man beachte das identische Verfahren 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)
Nun, wenn wir einen Schlaf in einem der Test
import os
import unittest
import time
class testProcess2(unittest.TestCase):
def test_Dummy2(self):
time.sleep(1)
self.assertEqual(0, os.getpid())
Wir bekommen (man beachte die verschiedenen Prozess-ID)
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)
Wie Bestimmung fügen Sie, ob es parallelisiert überhaupt? Ich habe ein ähnliches Ziel, aber ich * denke * Ich habe ein anderes Problem von dir ... möglicherweise nicht. – fholo