Как организовать модульное тестирование сетевого приложения?

Пишу приложение-сервер. Необходимо организовать модульное тестирование. Использую cmake, boost unit test. Возникла сложность, как лучше организовать автоматический запуск сервера перед началом тестов, а потом его завершение после окончания тестов.
Примерный сценарий:
- запуск сервера
- запуск модульных тестов, связанных с работой с сервером
- завершение тестов
- останов сервера
  • Вопрос задан
  • 2632 просмотра
Решения вопроса 1
froex
@froex Автор вопроса
Для реализации модульного тестирования пришлось реорганизовать архитектуру программной части сервера. Недостатком была потеря времени на реорганизацию, но, благо, кода было не так уж много, чтобы что-то переправлять. Огромным плюсом стало то, что код стал красивее. Например, благодаря подстраиванию под модульные тесты, пришлось создать обработчик принимаемых пакетов, создать дополнительные очереди обработки, дать возможность программисту назначать свои обработчики и т.п. Таким образом, вся процедура проверки была сведена на уровень кода: отдельные вызовы под запуск, останов, передачу данных, их приём, их обработку. Без подстраивания под модульные тесты, вряд ли в проекте сделали бы возможность самому назначать обработчики.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@brutal_lobster
Посмотрите в сторону docker или vagrant, integration testing и прочее.
Т.е. подготавливаете контейнер с необходимым окружением и задаете ваш примерный сценарий в виде стартового скрипта контейнера + добавляете загрузку результатов в общую папку или в CI-систему.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы