Flyven插件与Maven进行集成测试

时间:2014-07-09 17:38:57

标签: java maven flyway

我想在Maven中运行集成测试时运行Flyway插件。对于集成测试,我使用的是failafe插件。

首先是可以两次定义Flyway插件吗?一个用于一般用途(例如从命令行)和一个用于集成测试?如何在Flyway插件中定义单独的配置以进行集成测试?

2 个答案:

答案 0 :(得分:2)

您可以通过插件的不同执行来实现此目的。每次执行都可以有自己的配置。

答案 1 :(得分:0)

您可以使用其他配置为Failsafe的pre-integration-test阶段添加执行,请参阅Maven Failsafe Plugin

  

Maven生命周期有四个阶段用于运行集成测试:

     
      
  • 用于设置集成测试环境的预集成测试。
  •   
  • 用于运行集成测试的集成测试。
  •   
  • 用于拆除集成测试环境的集成后测试。
  •   
  • 验证是否检查了集成测试的结果。
  •   

Guide to Configuring Plug-ins

  

使用< executions>代码

     

您还可以使用标记配置mojo。这最常用于打算参与构建生命周期的某些阶段的mojos。

例如:

<plugin>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-maven-plugin</artifactId>
    <version>4.0.3</version>
    <configuration>           
        <url>jdbc:jtds:sqlserver://myCompany.com/generalDatabase</url>
        <user>dbUser</user>
        <password>password</password>
        <locations>
            <location>filesystem:src/main/resources/db/migration</location>
        </locations>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>net.sourceforge.jtds</groupId>
            <artifactId>jtds</artifactId>
            <version>1.2.7</version>
            <scope>runtime</scope>
        </dependency>
    </dependencies>
    <executions>
        <execution>
            <id>integration-test-database-setup</id>
            <phase>pre-integration-test</phase>
            <goals>
                <goal>clean</goal>
                <goal>migrate</goal>
            </goals>
            <configuration>           
                <url>jdbc:jtds:sqlserver://myCompany.com/testDatabase</url>
                <user>dbUser</user>
                <password>password</password>
                <locations>
                    <location>filesystem:src/test/resources/db/migration</location>
                </locations>
            </configuration>
        </execution>
    </executions>
</plugin>
相关问题