Как я могу параллельно запускать тесты 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.Светильники показывают, что светильники могут работать параллельно друг с другом.
У Игоря брейка есть сообщение в блоге о параллельном запуске тестов с использованием MbUnit.
однако он говорит: "Как только мы интегрируем селен в приемочное тестирование", поэтому похоже, что он просто экспериментировал, я не могу найти никаких других сообщений, поэтому я не знаю, успешно ли он провел тесты Селена параллельно.
http://igorbrejc.net/development/continuous-integration/gallio-running-tests-in-parallel
вы можете использовать параллельную библиотеку задач и класс DynamicObject для достижения распараллеливания одного и того же теста в нескольких браузерах. Смотрите мою статью запуск Selenium параллельно с любым инструментом модульного тестирования .NET для сведения.