Можно ли использовать Nose для одновременного запуска одного теста? - PullRequest
10 голосов
/ 03 ноября 2010

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

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

Ответы [ 2 ]

11 голосов
/ 12 января 2011

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

9 голосов
/ 12 января 2011

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

Используя плагин nose.plugin.multiprocess, вы можете распараллеливать тестовый прогон через настраиваемое количество рабочих процессов.,Хотя это может ускорить выполнение тестов с привязкой к ЦП, в основном это полезно для тестов с привязкой к вводу-выводу, которые проводят большую часть своего времени в ожидании получения данных из другого места и могут извлечь выгоду из распараллеливания.Мы адаптировали плагин для параллельного запуска одного теста.Загрузите с 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

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

...