Как мы должны тестировать наше приложение в контейнере Docker? - PullRequest
0 голосов
/ 23 мая 2018

У нас есть Java-приложение в Docker-контейнере с базой данных Docker Db2 'side-car'.В конвейере DevOps (Jenkins) мы запускаем модульные тесты и интеграционные тесты между компонентами.Запустите SonarQube и, если все будет хорошо, мы перейдем к промежуточной среде.На этапе Automated Testing мы создаем контейнер приложения с использованием самой последней базы кода, затем мы переходим к запуску автоматического Acceptance Testing с использованием инфраструктуры Cucumber.

Вопрос касается использования базы данных для тестирования: следует ли нам раскрутить db2 в новом / изолированном контейнере или использовать «общий» контейнер DB2, который команда тестирования использует в этом окружении для ручного тестирования?Необходимы лучшие практики, проверенные подходы и рекомендации.

1 Ответ

0 голосов
/ 23 мая 2018

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

Причины:

  • Для тестов API, сквозных тестов, я хочу контролировать, какие данные доступны в базе данных.При совместном использовании базы данных с другими средами тесты могут завершиться неудачей по странной причине (например, кто-то случайно изменил запись, которую тест ожидает в каком-то состоянии)
  • По той же причине я не хочуТесты API, сквозные тесты, чтобы повлиять на тестирование других людей.Это будет довольно раздражающим, если кто-то находится в процессе тестирования и понимает, что данные уничтожаются после тестирования после развертывания

Так что обычно в CI у нас есть шаги для:

  • очистить тестовые базы данных
  • запустить миграцию
  • заполнить основные данные
  • развернуть сервер
  • запустить тесты после развертывания
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...