Я решил отказаться от текущего решения (используя модифицированный NUnit нашей командой несколько лет назад NDistribUnit, который запускает тесты на VirtualMachines, а затем собирать результаты на хаб-сервере) в Selenium Grid 2.
Вариант с ParallelizableAttribute был опробован. К сожалению, я заметил, что IWebDriver хранится в глобальной переменной (puhh). Это заставляло тесты запускать несколько экземпляров браузера, но тесты использовали один IWebDriver -> выполнение тестов происходило в одном браузере -> тесты выполнялись в рамках одного процесса, но с несколькими «рабочими» потоками. Была предпринята попытка использовать 2 виртуальные машины в качестве «узлов» и локальный компьютер в качестве концентратора.
Я знаю, что лучшее решение - изменить недопустимую идею для хранения драйвера в глобальной переменной, но это займет слишком много времени: необходимо обновить более 3 тысяч тяжелых тестов пользовательского интерфейса; ожидается, что многие статические методы будут обновлять драйвер как глобальную переменную.
Также NUnit 3.0 предоставляет возможность для параллельного запуска нескольких сборок. . Запускать несколько тестовых проектов - это хорошо, но сейчас у нас 1 сборка на одно приложение. Было бы неплохо запускать тесты для одного приложения (одной сборки) параллельно.
Есть ли другие способы использовать GRID + NUnit 3 здесь, чтобы заставить его работать?
Наконец, было проведен рефакторинг существующего решения: теперь у каждого теста во время выполнения есть собственный драйвер. Из-за этого изменения было переписано много кода (похоже, что слишком много методов ожидали, что IwebDriver будет глобальной переменной)
public static IWebDriver _browser;
2. Используйте NUnit 3.0 - ProcessModel.Parallel, чтобы запускать каждую сборку в другой процесс. - person Alex   schedule 05.01.2016