我正在使用故障安全插件编写一些集成测试。
我想执行以下操作:
1)启动Docker(目标在预集成测试阶段启动)
2)Start Spring(目标在预集成测试阶段开始)
3)测试(阶段集成测试)
4)停止Spring(集成测试后的目标停止)
5) 停止 Docker(集成测试后的目标停止)
为什么?我想在 Spring 之前启动 Docker,以便在 Spring 启动时所有数据库都准备就绪,并且我想在 Spring 之后停止 Docker,以避免由于数据库连接丢失而在 Spring 中出现很多错误。
我有以下 pom.xml:
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.20.1</version>
<executions>
<execution>
<id>run-docker-containers</id>
<goals>
<goal>start</goal>
</goals>
<configuration>
...
</configuration>
</execution>
<execution>
<id>stop-docker-containers</id>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<id>pre-integration-test</id>
<goals>
<goal>start</goal>
</goals>
<configuration>
...
</configuration>
</execution>
<execution>
<id>post-integration-test</id>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
但是有了这个 pom.xml 我得到了这个命令:
1) 启动 Docker
2) 开始春天
3) 测试
4) 停止 Docker
5) 停止弹簧
也就是说,Docker 在 Spring 之前停止,我不希望这样。
我知道 Maven 中的执行顺序是由 pom.xml 中的顺序给出的,但在这种情况下,我需要跨越目标。
有什么建议吗?
谢谢。