我想在Maven中运行集成测试时运行Flyway插件。对于集成测试,我使用的是failafe插件。
首先是可以两次定义Flyway插件吗?一个用于一般用途(例如从命令行)和一个用于集成测试?如何在Flyway插件中定义单独的配置以进行集成测试?
答案 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>