Можно ли использовать Nose для одновременного запуска одного теста несколько раз?

Можно ли использовать nose для запуска одного теста одновременно (через несколько процессов) и агрегирования результат в один проход/неудачный результат?

Мы должны запускать один и тот же тест несколько раз одновременно, чтобы не блокировать блокировку ресурсов. Если нос не может этого сделать, существует ли конкретный образец тестирования/дизайна для достижения этого?

Ответ 1

Можно запускать тесты одновременно с носом:

Использование носа .plugin.multiprocess плагин, вы можете распараллелить тестовый прогон через настраиваемое число работников процессы. Хотя это может ускорить Тесты, связанные с процессором, в основном полезно для тестов, связанных с IO, которые проводят большую часть времени ждут данных прибывают откуда-то еще и могут выгоды от распараллеливания.

Я адаптировал плагин для запуска одного теста параллельно, как вы хотите. Загрузите из http://paste.pocoo.org/show/319470/ и сохраните как nose/plugins/repeat.py. Затем в nose/plugins/builtin.py добавьте строку ('nose.plugins.repeat', 'RepeatMultiProcess'), в builtins. Вызов:

c:\python27\python nose-1.0.0\selftest.py --repeat-processes=2 --repeat-times=3 test2.py

Примечание: поддержка установки/разрыва может быть нарушена. Если это так, исправление прост, см. Комментарий в строке

Ответ 2

Это похоже на то, что вы хотите в самом определении теста, потому что вы хотите утверждать об агрегировании результатов. Я бы посмотрел на использование multiprocessing в тесте. Создайте пул для параллельного выполнения кода. Вы можете использовать Queue для агрегирования результатов.