用于集成测试的故障安全插件

Failsafe plugin for Integration tests

我正在阅读有关如何使用故障安全插件编写集成测试的教程

https://www.javacodegeeks.com/2015/01/separating-integration-tests-from-unit-tests-using-maven-failsafe-junit-category.html

很好。但我需要编写测试设置挂钩。在这些挂钩中,我将提供 docker 个容器。我还需要在容器将被关闭的地方编写拆卸钩子。

我发现这段代码包含创建、启动容器和关闭容器的逻辑。

https://github.com/wouterd/hippo-docker/blob/master/myhippoproject/integrationtests/pom.xml

但我不确定测试 运行 以及 XML 中定义的这些目标将如何以正确的顺序被调用以进行 运行 的集成测试。

基本上,我首先需要调用构建映像,然后是启动容器,然后是测试 运行,最后是停止和清理。

谁能帮我把这些点联系起来。 (这些可能是显而易见的)。

您需要了解 Maven Lifecycle. This defines the "path" that maven will execute various phasese of the a build. If you read through the Lifecycle Reference 您将看到按执行顺序列出的各个阶段。

这些阶段中的每一个都可以由不同的插件附加。在 hippo-docker 中使用的特定 docker maven plugin 定义了不同的 "goals"(例如启动容器),默认情况下附加到预集成测试生命周期阶段。

插件将按照它们在 pom.xml 中声明的顺序在特定阶段执行。如果你有 plugin-a 绑定到 phase-x 然后声明 plugin-b 绑定到 phase-x 顺序将是 plugin-a 然后 plugin-b.

在集成测试的情况下,maven-failsafe-plugin 确保捕获并记录单元测试执行中的任何故障,以便 post-集成测试阶段可以 运行。通常,您会 运行 "mvn verify" 以确保您执行预集成测试、集成测试、post-集成测试。