Как: выполнить тесты интеграции maven в тестовой среде (базе данных)

Я использую maven и maven-failsafe-plugin для запуска причала на этапе жизненного цикла интеграционного тестирования. Затем я выполняю несколько (* IT.java) тестов junit для моего запущенного веб-приложения. Это работает, как ожидалось.

Однако я хотел бы подключиться к тестовой базе данных для своих интеграционных тестов. Я сохраняю его URL-адрес в

${basedir}/src/test/resources/jdbc.properties  

. Когда плагин Jetty запускается (jetty: run), он вместо этого использует

${basedir}/src/main/resources/jdbc.propertes 

. Я попытался перенастроить плагин пристани с помощью свойства classesDirectory , чтобы использовать

${project.build.testOutputDirectory}

, но в каталоге тестовых классов отсутствуют мои фактические скомпилированные классы проекта, а также ресурсы, хранящиеся в

${basedir}/src/main/resources 

, примечание: surefire добавляет тестовые ресурсы в путь к классам, за которыми следуют основные ресурсы, так что все, что найдено в обоих, будет использовать тестовую версию, потому что оно находится первым в пути к классам.

Есть идеи, как правильно настроить это?

Спасибо !

РЕДАКТИРОВАТЬ:

Что ж, кажется, есть свойства конфигурации в плагине пристани, чтобы справиться с этим:

  • testClassesDirectory: каталог, содержащий сгенерированные тестовые классы.
  • useTestClasspath: Если правда, зависимости теста и будут помещены в первую очередь в путь к классам среды выполнения.

К сожалению, они не работают.

Вот соответствующая часть моего pom.xml:

   true  src / test / resources  org.mortbay.jetty  плагин maven-jetty  6.1.26  /  8005  СТОП  старт-причал  предварительный интеграционный тест  запустить  верно  истина  $ {project.build.testOutputDirectory}  остановка причала  тест после интеграции  стоп  maven-failsafe-plugin  2.6  интеграционный тест  проверить  false 

13
задан Jon Lorusso 18 February 2011 в 18:57
поделиться