Кажется, что нос, фактически многопроцессный плагин, будет выполнять тестовый запуск параллельно.Предостережение заключается в том, что, как это работает, вы можете не выполнять тестирование для нескольких процессов.Плагин создает тестовую очередь, порождает несколько процессов, а затем каждый процесс использует очередь одновременно.Для каждого процесса тестовая отправка отсутствует, поэтому, если ваш тест выполняется очень быстро, он может закончиться выполнением в одном и том же процессе.
В следующем примере отображается этот beaviour:
Файл test1.py
import os
import unittest
class testProcess2(unittest.TestCase):
def test_Dummy2(self):
self.assertEqual(0, os.getpid())
Файл test2.py
import os
import unittest
class testProcess2(unittest.TestCase):
def test_Dummy2(self):
self.assertEqual(0, os.getpid())
Запуск тестов носа --processes = 2 выхода (обратите внимание на идентичный идентификатор процесса)
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)
Теперь, если мыдобавить сон в один из тестов
import os
import unittest
import time
class testProcess2(unittest.TestCase):
def test_Dummy2(self):
time.sleep(1)
self.assertEqual(0, os.getpid())
Мы получаем (обратите внимание на другой идентификатор процесса)
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)