JUnit + DbUnit: переключение соединения с базой данных между средами разработки и тестирования

Я устанавливаю несколько тестовых каркасов вокруг существующего проекта. Сюда входят некоторые интеграционные тесты с использованием JUnit и DbUnit. Я также настроил установку Jenkins для непрерывной интеграции.

Моя проблема связана с изменением соединений БД между средами разработки и тестирования. У меня есть собственный стек продуктов, установленный локально для быстрого специального тестирования и исследования. По мере разработки я провожу тесты со своей частной базой данных, так как это быстрее, и я не испорчу никому день глючным незавершенным кодом.

Как только код будет зарегистрирован, Дженкинс запустит мои тесты. Прямо сейчас он все еще указывает на мою локальную базу данных. Я бы предпочел, чтобы Jenkins запускал тесты с другой базой данных, которая находится в тестовой среде.

Существует ли передовая практика/стратегия/технология/и т. д. для изменения подключений к базе данных для тестирования без необходимости изменения кода? Бонусные баллы, если решение позволяет Jenkins запускать одни и те же тесты для нескольких БД (должно быть возможно, поскольку DbUnit не зависит).


Правки для получения дополнительной информации:

Продукт большой, с десятками различных взаимодействующих компонентов (обычно в отдельных vms/процессах). В действующей системе различные процессы обычно взаимодействуют через базу данных. IE процесс пользовательского интерфейса записывает изменения в таблицу, а внутренний процесс опрашивает эту таблицу на наличие изменений. Да, это ужасно. Для интеграционного тестирования я настраиваю систему с помощью пользовательского интерфейса и фиксирую это состояние с помощью DbUnit. Затем я могу запустить тесты для этого «входа».

Мой компонент и все новые компоненты управляются maven. Соединения с БД в настоящее время жестко запрограммированы в тестовой настройке. Система DbUnit работает; Я просто хотел бы иметь возможность переключать базу данных, на которую ссылаются мои тесты, в зависимости от того, выполняются ли они мной в моей среде разработки или запускаются Дженкинсом в среде тестирования.

5
задан Eric Grunzke 23 May 2012 в 16:07
поделиться