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

标签 java maven maven-failsafe-plugin

我正在阅读本教程,了解如何使用故障安全插件编写集成测试

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

很好。但我需要编写测试设置 Hook 。在这些钩子(Hook)中,我将配置 docker 容器。我还需要编写将关闭容器的拆卸钩子(Hook)。

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

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

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

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

有人可以帮我连接这些点吗? (这些可能是显而易见的)。

最佳答案

您需要了解 Maven Lifecycle 。这定义了 Maven 将执行构建的各个阶段的“路径”。如果您通读Lifecycle Reference您将看到按执行顺序列出的各个阶段。

每个阶段都可以通过不同的插件附加。特别是docker maven plugin hippo-docker 中使用的定义不同的“目标”(例如启动容器)默认附加到预集成测试生命周期阶段。

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

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

关于java - 用于集成测试的故障安全插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36614080/

相关文章:

java - Eclipse 执行集成测试,但 Maven 不执行

Maven 故障安全插件 - SurefireBooterForkException : There was an error in the forked process (TypeNotPresentExceptionProxy)

java - 需要一个与 Windows 上的 Eclipse 配合使用的免费 Java 方法执行分析器

java - 解释一下java代码的执行顺序或优先级?

java - 我可以从运行时将 XmlAdapter 添加到 JAXB(不带注释)吗?

java - tomcat 上的 JVM 代理参数出现间歇性 503 问题

java - maven命令行-插件配置

linux - Jenkins 无法运行 Maven

java - 构建前将jar添加到maven本地仓库

maven - 在 Linux 上运行时,exec-maven-plugin 出现类未找到异常