Я использую maven и maven-failafe-plugin для запуска причала во время фазы жизненного цикла интеграции-тестирования. Затем я выполняю несколько тестов (* IT.java) junit против моего запуска webapp. Это работает как ожидалось.
Однако я хотел бы подключиться к тестовой базе данных для своих тестов интеграции. Я сохраняю его URL в
${basedir}/src/test/resources/jdbc.properties
Когда плагин причала работает (причал: бег), он использует
${basedir}/src/main/resources/jdbc.propertes
вместо этого. Я попытался переконфигурировать плагин причала с помощью свойства classesDirectory, чтобы использовать
${project.build.testOutputDirectory}
но в каталоге тестовых классов отсутствуют мои фактические скомпилированные классы проектов, а также ресурсы, хранящиеся в
${basedir}/src/main/resources
note: surefire добавляет тестовые ресурсы к пути к классам, за которыми следуют основные ресурсы, так что все, что содержится в обоих, будет использовать тестовую версию, потому что она найдена сначала в пути к классам.
Любые идеи о том, как правильно настроить эту настройку?
Спасибо!
EDIT:
Ну, похоже, что есть свойства конфигурации на плагине приставок, чтобы справиться с этим:
- testClassesDirectory: каталог, содержащий сгенерированные тестовые классы.
- useTestClasspath: если true, то и зависимости теста будут помещены сначала в путь пути выполнения.
К сожалению, они не работают.
Вот соответствующая часть моего 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>