【问题标题】:Failsafe plugin for Integration tests [duplicate]集成测试的故障安全插件[重复]
【发布时间】:2016-04-14 04:47:24
【问题描述】:

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

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 中定义的这些目标以运行集成测试。

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

谁能帮我把这些点联系起来。 (这些可能很明显)。

【问题讨论】:

    标签: java maven maven-failsafe-plugin


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 一个快速的澄清是,在maven.apache.org/guides/introduction/…这里的代码中,他们在声明目标时非常明确地指定了“阶段”。但是上面的河马代码只是指定了目标,但没有说明目标与哪个阶段相关。那么阅读河马代码的人......他们怎么会知道“停止和清理”与后集成有关?
    • 好点 - 昨晚有点晚 - 我确实进入了 docker-maven-plugin 源代码并检查了为处理这些任务而定义的“Mojos”并阅读了注释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 1970-01-01
    • 1970-01-01
    • 2020-03-16
    • 2016-02-15
    • 2014-12-05
    • 2017-12-12
    相关资源
    最近更新 更多