В этой статье упоминается, что для ускорения тестов плакат запускает несколько экземпляров NUnit с параметрами команды, определяющими, какие тесты должен запускать каждый экземпляр.
FTA:
Я столкнулся с странной проблемой.
Мы используем nunit-console для запуска теста на нашем сервере непрерывной интеграции. Недавно мы перешли с Nunit 2.4.8 на 2.5.5 и с .Net 3.5 на 4.0. Чтобы ускорить выполнение теста, мы запускаем несколько экземпляров Nunit параллельно с разными аргументами командной строки.
- У нас есть две копии наших тестовых сборок и двоичные файлы nunit в папках A и B.
- В папке A выполняем
nunit-console-x86.exe Model.dll Test.dll / exclude: MyCategory /xml=TestResults.xml /framework=net-4.0 / noshadow
nunit-console-x86.exe Model.dll Test.dll / включает: MyCategory /xml=TestResults.xml /framework=net-4.0 / noshadow
Если мы выполним команды последовательно, оба будут успешно выполнены. Но если мы выполняем их параллельно, только один добьется успеха. Насколько я могу судить, это тот, который первым загружает тестовые приборы. Другой выдает сообщение «Невозможно найти прибор».
Эта проблема уже известна? Я не смог найти ничего связанного в списке ошибок на панели запуска. Кстати, наш сервер работает под управлением 64-разрядной версии Windows Server 2008. Я также мог воспроизвести проблему на 64-битной Windows 7.
Предполагая, что эта ошибка исправлена или вы не используете более новую (ые) версию (ы) упомянутого программного обеспечения, вы сможете воспроизвести их технику.
Обновить
TeamCity выглядит как инструмент, который можно использовать для автоматического запуска тестов NUnit. Здесь обсуждается средство запуска NUnit, которое можно использовать для запуска нескольких экземпляров NUnit. Вот сообщение в блоге, в котором обсуждается объединение нескольких результатов NUnit XML в один файл результатов.
Таким образом, теоретически вы можете заставить TeamCity автоматически запускать несколько тестов NUnit в зависимости от того, хотите ли вы разделить рабочую нагрузку, а затем объединить результаты в один файл для обработки после тестирования.
Достаточно ли это автоматизировано для ваших нужд?