Я использую maven и maven-failsafe-plugin для запуска Jetty на этапе жизненного цикла интеграционных тестов. Затем я выполняю ряд (* IT.java) тестов junit для моего запущенного веб-приложения. Это работает, как ожидалось.
Однако я хотел бы подключиться к тестовой базе данных для моих интеграционных тестов. Я храню его URL в
${basedir}/src/test/resources/jdbc.properties
Когда плагин Jetty работает (Jetty: Run), он использует
${basedir}/src/main/resources/jdbc.propertes
вместо этого. Я попытался перенастроить подключаемый модуль Jetty через свойство classesDirectory , чтобы использовать
${project.build.testOutputDirectory}
но в каталоге test-classes отсутствуют мои фактические скомпилированные классы проекта, а также ресурсы, хранящиеся в
${basedir}/src/main/resources
примечание: верное добавление тестовых ресурсов к пути к классам, за которым следуют основные ресурсы, так что все найденное в обоих будет использовать тестовую версию, потому что она найдена первой в пути к классам.
Любые идеи о том, как правильно настроить это?
Спасибо!
EDIT:
Что ж, похоже, есть свойств конфигурации на плагине Jetty, чтобы справиться с этим:
- testClassesDirectory: каталог, содержащий сгенерированные тестовые классы.
- useTestClasspath: если true, зависимости и тесты будут помещены первыми в classpath среды выполнения.
К сожалению, они не работают.
Вот соответствующая часть моего pom.xml:
<testResources>
<testResource>
<filtering>true</filtering>
<directory>src/test/resources</directory>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.26</version>
<configuration>
<contextPath>/</contextPath>
<stopPort>8005</stopPort>
<stopKey>STOP</stopKey>
</configuration>
<executions>
<execution>
<id>start-jetty</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<daemon>true</daemon>
<useTestClasspath>true</useTestClasspath>
<testClassesDirectory>${project.build.testOutputDirectory}</testClassesDirectory>
</configuration>
</execution>
<execution>
<id>stop-jetty</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<useFile>false</useFile>
</configuration>
</plugin>