Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Настройка Selenium Grid + PNunit + С# тесты.

webdriver
Теги: #<Tag:0x00007f7b6d695308>

(You Rooock) #1

Привет всем!
Появилась необходимость запускать параллельно тесты. Сами тесты написаны на C#.
Сталкивался кто-то с PNunit? Как его настроить и связать с Selenium Grid?

Если не трудно, то с какими-нибудь примерами.
Спасибо)


(sidelnikovmike) #2

@dzhariy - твой выход по C# :smile:


(Pasha Strunkin) #3

Пользуюсь NUnit.Parallel https://cpntr.codeplex.com/
В коде ничего не нужно добавлять для параллельного запуска.

Вот так запускаю в гриде
Driver = new RemoteWebDriver(new Uri(<hub_url>), DesiredCapabilities.Chrome());


(You Rooock) #4

Спасибо! Прикольная тулза. А не подскажешь как в ней запускать разные TestFixture в параллель, а не отдельные тесты?


(Pasha Strunkin) #5

Не нашел такой фичи там.
Возможно не совсем тебя понял.
Опиши цель, которую хочешь достичь.

Правильно ли я понял, что ты хочешь сохранить порядок выполнения тестов в пределах одной фикстуры или выполнять все тесты фикстуры только на определенной ноде?
Нужно уточнение )


(You Rooock) #7

У меня тесты хранятся по фичам в классах(TestFixture). Тесты написаны так, что в TestFixtureSetUp инициализируется драйвер и закрывается только когда тесты класса все пройдут.

У меня получилось этой прогой запукскать тесты в параллель для одной TestFixture (куча открытых окон и в них бегут тесты для одного класса), а я хочу, чтобы в разных окнах браузера бежали разные TestFixture.


(Константин) #8

Смотрели в сторону Gallio Icarus? Gallio

Только есть маленькая проблемка - он больше не саппортится(


(You Rooock) #9

Спасибо всем кто отписался здесь.
Решание было найдено следующее : использовать бета версию NUnit 3.0, которрый поддерживает параллельный запуск тестов. Единственное, что нужно добавить в коде - аттрибут Parallezible. Стоит отметить, что он пока поддерживает только запуск TestFixture в параллель.
И еще один ньюанс : тесты он запускает по дефолту в количество потоков равное количеству ядер процессора. Чтобы увеличить количество потоков, то нужна через Console-nunit указывать параметр --workers = n, где n-количество потоков.

И, конечно же, прийдется переписывать код, чтобы сделать его Thread-safe.
Всем удачи)