使用" test" GUI集成测试中的DB

时间:2014-08-25 12:08:23

标签: spring spring-mvc jpa selenium maven-tomcat-plugin

我有一个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测试的应用程序时,如何更改数据库连接设置?

1 个答案:

答案 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系统变量,这将激活测试配置文件和相应的数据库连接设置。