Я устанавливаю тестовые леса вокруг существующего проекта. Сюда входят некоторые интеграционные тесты с использованием JUnit и DbUnit. Я также установил установку Jenkins для непрерывной интеграции.
Моя проблема связана с изменением соединений БД между средами разработки и тестирования. У меня локально установлен собственный стек продуктов для быстрого специального тестирования и исследования. В процессе разработки я запускаю тесты для моей частной базы данных, так как это быстрее, и я не буду испортить никому другой день с ошибками в незавершенном коде.
Как только код будет зарегистрирован, Дженкинс запустит мои тесты. Прямо сейчас он все еще указывает на мою локальную базу данных. Я бы предпочел, чтобы Дженкинс запускал тесты для другой базы данных, которая находится в тестовой среде.
Есть ли лучшая практика / стратегия / технология / и т. Д. Для изменения соединений с базой данных для тестирования без изменения кода? Бонусные баллы, если решение позволяет Jenkins запускать одни и те же тесты для нескольких БД (это должно быть возможно, поскольку DbUnit не зависит).
Правки для получения дополнительной информации:
Продукт большой, с десятками различных взаимодействующих компонентов (обычно в отдельных vms / процессах). В действующей системе различные процессы обычно обмениваются данными через базу данных. IE, процесс пользовательского интерфейса записывает изменения в таблицу, а внутренний процесс опрашивает эту таблицу на предмет изменений. Да, это ужасно. Для интеграционного тестирования я настраиваю систему с помощью пользовательского интерфейса и фиксирую это состояние с помощью DbUnit. Затем я могу запустить тесты для этого «входа».
Мой компонент и все новые компоненты управляются maven. Подключения к БД в настоящее время жестко запрограммированы в тестовой настройке. Система DbUnit работает; Я просто хотел бы иметь возможность переключать, на какую базу данных ссылаются мои тесты, в зависимости от того, запущены ли они мной в моей среде разработки или запущены Дженкинсом в среде тестирования.