我有一个Spring MVC + JPA / Hibernate应用程序。该应用程序有一些GUI(Selenium)测试。我使用tomcat7-maven-plugin
部署我的应用程序进行这些测试:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>tomcat-run</id>
<goals>
<goal>run-war-only</goal>
</goals>
<phase>pre-integration-test</phase>
<configuration>
<fork>true</fork>
</configuration>
</execution>
<execution>
<id>tomcat-shutdown</id>
<goals>
<goal>shutdown</goal>
</goals>
<phase>post-integration-test</phase>
</execution>
</executions>
</plugin>
此设置适用于生产数据库,但我需要使用另一个数据库进行这些测试。我的数据库连接设置在Spring配置和.properties
文件中定义。
在部署用于GUI测试的应用程序时,如何更改数据库连接设置?
答案 0 :(得分:0)
1)在Spring配置中创建两个Spring配置文件:一个用于生产(包含生产数据库的数据库连接设置),另一个用于集成测试(包含测试数据库的数据库连接设置)。
2)将以下配置添加到tomcat7-maven-plugin
:
<configuration>
<systemProperties>
<!--Replace `nameOfYourSpringTestProfile` with the name of your actual test profile. -->
<spring.profiles.active>nameOfYourSpringTestProfile</spring.profiles.active>
</systemProperties>
</configuration>
此配置将在已部署的应用程序中设置spring.profiles.active
系统变量,这将激活测试配置文件和相应的数据库连接设置。