В моем текущем проекте NUnit используется для модульных тестов и для управления UAT, написанными с помощью Selenium. Разработчики обычно запускают тесты с помощью средства запуска тестов ReSharper в VS.Net 2003, а наша сборка запускает их через NAnt.
Мы хотели бы запустить тесты UAT параллельно, чтобы мы могли воспользоваться преимуществами Selenium Grid / RC, чтобы они могли работать намного быстрее.
Есть ли у кого-нибудь мысли о том, как этого можно достичь? и / или лучшие практики для тестирования тестов Selenium в среде с несколькими браузерами без автоматического написания дублирующих тестов?
Спасибо.





Работы по этой теме было не так много. Я не нашел ничего подходящего.
Однако ваша точка зрения хорошо понята. Большинство машин в настоящее время имеют больше ядер и менее мощные ядра по сравнению с мощным одноядерным процессором.
Так что я кое-что нашел в блоге Microsoft. Технология называется PUnit и создана специально для тестирования многопоточной среды.
Это максимально близко к тому, что вы просили, чтобы я смог найти :)
Вы можете посетить соответствующую запись в блоге прямо здесь: http://blogs.microsoft.co.il/blogs/eyal/archive/2008/07/09/punit-parallel-unit-testing-in-making.aspx
Обновление: ссылка больше не действительна. Проект на CodePlex удален.
Обновление 2: это на дорожной карте для NUnit 2.5. Справка
Я сам боролся с обеими этими проблемами. В конце концов, я разработал специальный инструмент запуска тестов Nunit, который может выполнять несколько тестов параллельно. Это в сочетании с расширением Taumuon.Rakija для nunit позволило динамически создавать тесты в зависимости от того, в каком браузере вы хотите запускать тест.
Теперь у меня есть возможность запустить свой набор тестов параллельно с любым количеством браузеров в любом количестве операционных систем.
К сожалению, у этих проблем пока нет хорошего решения, поэтому вам, вероятно, придется решать их самостоятельно для вашей конкретной среды.
Как насчет того, чтобы вы открыли исходный код?
У Игоря Брейца есть запись в блоге о параллельном запуске тестов с использованием MbUnit.
Однако он говорит: «Как только мы интегрируем Selenium в приемочное тестирование», поэтому похоже, что он просто экспериментировал, я не могу найти никаких других сообщений, поэтому я не знаю, успешно ли он запускал тесты Selenium параллельно.
http://igorbrejc.net/development/continuous-integration/gallio-running-tests-in-parallel
Вы можете использовать параллельную библиотеку задач и класс DynamicObject, чтобы добиться распараллеливания одного и того же теста в нескольких браузерах. Подробнее см. Мою статью Запуск Selenium параллельно с любым инструментом модульного тестирования .NET.
NUnit версии 3 будет поддерживать параллельное выполнение тестов, это хорошо работает с Selenium Grid:
Добавление атрибута в класс: [Parallelizable(ParallelScope.Self)] будет запускать ваши тесты параллельно с другими тестовыми классами.
• ParallelScope.None indicates that the test may not be run in parallel with other tests.
• ParallelScope.Self indicates that the test itself may be run in parallel with other tests.
• ParallelScope.Children indicates that the descendants of the test may be run in parallel with respect to one another.
• ParallelScope.Fixtures indicates that fixtures may be run in parallel with one another.
Отвечает ли это на ваш вопрос? Как я могу запускать тесты NUnit параллельно?