Как я могу параллельно запускать тесты NUnit(Selenium Grid)?

мой текущий проект использует NUnit для модульных тестов и для управления UATs, написанными с помощью Selenium. Разработчики обычно запускают тесты с помощью Test runner ReSharper в VS.Net 2003 и наша коробка сборки запускает их через NAnt.

мы хотели бы запустить тесты UAT параллельно, чтобы мы могли воспользоваться преимуществами Selenium Grid / RCs, чтобы они могли работать намного быстрее.

У кого-нибудь есть мысли о том, как это может быть достигнуто? и / или рекомендации по тестированию Селена тесты против нескольких сред браузеров без автоматического написания дубликатов тестов?

спасибо.

5 ответов


не было много работы по этому вопросу. Я не нашел ничего подходящего.

тем не менее, ваша точка зрения хорошо принята. Большинство машин в настоящее время имеют больше ядер и менее мощные ядра по сравнению с мощным одним ядром процессора.

Итак, я нашел что-то в блоге Microsoft. Технология называется PUnit и сделана специально для тестирования многопоточной среды.

Это как можно ближе к тому, что вы просили, что я мог найти :)

вы можете посетить его соответствующее сообщение в блоге прямо там: http://blogs.microsoft.co.il/blogs/eyal/archive/2008/07/09/punit-parallel-unit-testing-in-making.aspx

Update: ссылка больше не действительна. Проект на CodePlex был удален.

Update2: это на Дорожной карте для NUnit 2.5. ссылка


Я сам боролся с обеими этими проблемами. В конце концов я разработал пользовательский тестовый бегун Nunit, который способен выполнять несколько тестов в parrallel. Это в сочетании с Taumuon.Расширение Rakija для nunit позволило создавать тесты dynmaically в зависимости от того, в каком браузере вы хотите запустить тест.

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

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


NUnit версии 3 будет поддерживать выполнение тестов параллельно, это хорошо работает с сеткой Селена:

добавление атрибута в класс:[Parallelizable(ParallelScope.Self)] будет запускать тесты параллельно с другими тестовыми классами.

* ParallelScope.None указывает, что тест не может выполняться параллельно с другими тестами.

* ParallelScope.Self указывает, что тест может работать параллельно с другими тестами.

• ParallelScope.Дети указывают, что потомки теста могут бегите параллельно относительно друг друга.

* ParallelScope.Светильники показывают, что светильники могут работать параллельно друг с другом.

NUnit Framework-Параллельный Тест-Выполнение


У Игоря брейка есть сообщение в блоге о параллельном запуске тестов с использованием MbUnit.

однако он говорит: "Как только мы интегрируем селен в приемочное тестирование", поэтому похоже, что он просто экспериментировал, я не могу найти никаких других сообщений, поэтому я не знаю, успешно ли он провел тесты Селена параллельно.

http://igorbrejc.net/development/continuous-integration/gallio-running-tests-in-parallel


вы можете использовать параллельную библиотеку задач и класс DynamicObject для достижения распараллеливания одного и того же теста в нескольких браузерах. Смотрите мою статью запуск Selenium параллельно с любым инструментом модульного тестирования .NET для сведения.