Как я могу параллельно запускать тесты NUnit (Selenium Grid)?
-
03-07-2019 - |
Вопрос
Мой текущий проект использует NUnit для модульных тестов и для управления UATS, написанными с помощью Selenium.Разработчики обычно запускают тесты с помощью программы запуска тестов ReSharper в VS.Net 2003, а наше окно сборки запускает их через NAnt.
Мы хотели бы запускать тесты UAT параллельно, чтобы мы могли воспользоваться преимуществами Selenium Grid / RCs, чтобы они могли выполняться намного быстрее.
Есть ли у кого-нибудь какие-нибудь мысли о том, как этого можно достичь?и / или рекомендации по тестированию тестов 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 позволяло создавать тесты в зависимости от того, в каком браузере вы хотите запустить тест.
Сейчас я в состоянии запустить свой набор тестов для любого количества браузеров в таком количестве операционных систем, сколько я хочу параллельно. Р>
К сожалению, похоже, что этих проблем уже нет хорошего решения, поэтому вам, вероятно, придется решать их самостоятельно для конкретной среды.
NUnit версии 3 будет поддерживать параллельное выполнение тестов, это хорошо работает с сеткой Selenium:
Добавление атрибута в класс: [Parallelizable(ParallelScope.Self)]
будет запускать ваши тесты параллельно с другими тестовыми классами.
• ParallelScope.None указывает, что тест не может выполняться параллельно с другими тестами.
• ParallelScope.Self указывает, что тест сам по себе может выполняться параллельно с другими тестами.
• ParallelScope.Дочерние элементы указывают, что потомки теста могут выполняться параллельно по отношению друг к другу.
• ParallelScope.Приборы указывают, что приборы могут запускаться параллельно друг с другом.
У Игоря Брейца есть запись в блоге о параллельном запуске тестов с использованием MbUnit.
Однако он говорит: «Как только мы интегрируем Selenium в приемочное тестирование», похоже, он просто экспериментирует, я не могу найти другие посты и не знаю, успешно ли он параллельно проводил тесты Selenium. . р>
http://igorbrejc.net/development/continuous -Интеграция / Gallio-погонных-тесты-в-параллельной
Вы можете использовать Task Parallel Library и класс DynamicObject, чтобы добиться распараллеливания одного и того же теста в нескольких браузерах. См. Мою статью Запуск Selenium параллельно с любой .NET Unit Testing Tool для подробностей.