Как я могу запустить тесты NUnit параллельно? - PullRequest
74 голосов
/ 23 июля 2010

У меня есть большой приемочный тест (~ 10 секунд на тест), написанный с использованием NUnit. Я хотел бы использовать тот факт, что все мои машины являются многоядерными. В идеале я бы мог иметь один тест на ядро ​​независимо от других тестов.

Существует PNUnit, но он предназначен для тестирования потоков с проблемами синхронизации и тому подобного, и я не видел очевидного способа сделать это.

Есть ли переключатель / инструмент / опция, которую я могу использовать для параллельного запуска тестов?

Ответы [ 13 ]

1 голос
0 голосов
/ 24 апреля 2019

В качестве альтернативы добавлению атрибута Parallelizable для каждого класса тестирования:

Добавьте это в тестовый проект класса AssemblyInfo.cs для nunit3 или выше:

// Make all tests in the test assembly run in parallel
[assembly: Parallelizable(ParallelScope.Fixtures)]
0 голосов
/ 03 августа 2017

Вы можете использовать следующую команду PowerShell (для NUnit3, для NUnit2 изменить имя исполнителя):

PS> nunit3-console (ls -r *\bin\Debug\*.Tests.dll | % FullName | sort-object -Unique)

Представленная команда запускает все тестовые сборки в единичном экземпляре, что позволяет использовать встроенный параллельный тестовый прогон .

Примечания

  1. Не забудьте настроить шаблон поиска в каталоге. В данном примере выполняются только сборки, заканчивающиеся на .Tests.dll и внутри каталогов \bin\Debug.

  2. Помните о Unique фильтрации - возможно, вы не захотите ее иметь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...