Вопрос в том, как я могу использовать разные файлы свойств для тестирования интеграции. Ниже приводится подробное объяснение.Интеграционные тесты с Maven в проекте Spring
Я пытаюсь выполнить тесты интеграции контейнеров с Maven, используя tomcat7-maven-plugin
. В проекте используются Spring и JPA. В настоящее время, что я понял, это следующий:
- имен теста Unit класса следовать шаблону * Test и работать с
mvn test
поmaven-surefire-plugin
- имен теста Интеграции класса следовать шаблону * IT и работать с
mvn verify
поmaven-failsafe-plugin
- с казнями можно вызвать, чтобы начать и остановить и развернуть кот войну файл
Все это работает, и когда я бегу mvn verify
Tomcat запускается.
Однако вместо использования обычной базы данных я хотел бы использовать базу данных в памяти. Моя конфигурация базы данных определена в файле src/main/resources/META-INF/spring/database.properties
, загруженном через context:property-placeholder
.
Я пытался определить альтернативный файл в src/test/resources/META-INF/spring/database.properties
, но игнорируется. Я знаю, что можно определить системные свойства в пределах tomcat7-maven-plugin
, но я не знаю, как их использовать для запуска загрузки различных файлов свойств.
Моя конфигурация tomcat7-maven-plugin
заключается в следующем:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>9090</port>
<path>/processing</path>
<useTestClasspath>true</useTestClasspath>
<systemProperties>
<example.value.1>alpha</example.value.1>
</systemProperties>
</configuration>
<executions>
<execution>
<id>start-tomcat</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run-war-only</goal>
</goals>
<configuration>
<fork>true</fork>
</configuration>
</execution>
<execution>
<id>stop-tomcat</id>
<phase>post-integration-test</phase>
<goals>
<goal>shutdown</goal>
</goals>
</execution>
</executions>
</plugin>
Свойства загружаются context-main.xml
с помощью следующей строки:
<context:property-placeholder location="classpath*:META-INF/spring/*.properties"/>
загружаю конфигурацию контекста из web.xml
со следующим:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:META-INF/spring/context-*.xml</param-value>
</context-param>
Любое предложение n о том, как загрузить файл альтернативных свойств для тестирования?
'src/test/resources/META-INF/spring/database.свойства будут учтены в обычных тестах, но не в тестах с отказоустойчивостью, потому что тесты с отказоустойчивостью основаны на нормальной «войне», и это НЕ включает тестовые ресурсы src или test – Ralph
Право, я подозревал, теперь я экспериментирую с профилями и 'maven-antrun-plugin', чтобы скопировать измененный файл свойств непосредственно в папку сборки. Если у кого-то есть лучшая идея, я все уши. – stivlo