Страницы

Поиск по вопросам

воскресенье, 8 декабря 2019 г.

Интеграционное тестирование .Net приложений

#c_sharp #юнит_тесты #тестирование #интеграция


Здравствуйте, мне необходимо реализовать интеграционные тесты настольного .Net приложения,
которые будут запускаться после каждого билда. Тестируется бизнес-логика, описан ряд
сценариев, которые нужно проверить. Писать юнит-тесты и пытаться замокать все компоненты
- не очень здравая идея, нужно тестировать именно приложение. Юнит-тесты уже есть.
Запускать тесты хотелось бы автоматически, используя Bamboo или Jenkins, сами тесты
писать на C#. Была идея использовать Jmeter, но там только java.
Подскажите пожалуйста, есть ли какое-то средство для реализации интеграционных тестов
под .net, какой-нибудь аналог JMeter? Насколько правильно реализовывать интеграционные
тесты, используя MSTest или NUnit? Как правильно запускать нужное окружение, на котором
проводить тестирование?
    


Ответы

Ответ 1



Писать интеграционные тесты, используя MSTest вполне нормально как и NUnut или XUnit это же все лишь фреймворки для выполнения теста как такового. А какой уж это будет тест: Unit, интеграционный, UI, уже дело того, что вы проверяете внутри теста. По поводу окружения, тут есть разные подходы, например вы можете развернуть MSTest Agent на виртуальных машинах с нужным окружением и подключить их к контроллеру. Для выбора на каком конкретно контроллере вы хотите запустить тест используйте соответствующий .testsettings и .runsettings файлы, у NUnit агентов примерно все так же. При таком подходе код теста выполняется на агенте. Либо если вы тестируете UI, то можете использовать Selenium Grid, и управлять окружением на уровне Selenium Node. тогда у вас будет один агент например NUnit на нем будет выполняться теста и для работы с UI от будет обращаться к Grid для определенного окружения, а тот уже выбирает свободную ноду. Резюмирую: Одно окружение устанавливается на все агенты одного контроллера или при другом подходе на все ноды одного грида. Для выбора окружения нужно выбрать соответствующий контролер или грид.

Комментариев нет:

Отправить комментарий