【问题标题】:How to do integration test with all the module in maven?如何对 maven 中的所有模块进行集成测试?
【发布时间】:2015-12-18 11:41:48
【问题描述】:

例如,我有一个包含 2 个模块的 maven 项目。一个 REST 服务模块,一个 hornetq jms 模块。

手动方式是:

  1. 运行嵌入式码头服务器应用程序
  2. 运行嵌入式 hornetq 服务器
  3. 向 REST 服务器发送 PUT 请求(作为 hornetq 生产者的 REST 服务器将请求消息推送到 hornetq 队列)
  4. 启动 hornetq 消费者以接收排队的消息

如何使用 maven 与他们进行集成测试?

【问题讨论】:

    标签: maven jetty hornetq


    【解决方案1】:

    答案是maven-failsafe-plugin(参见文档http://maven.apache.org/surefire/maven-failsafe-plugin/usage.html)。它可以让你

    1. pre-integration-test 阶段启动应用程序(例如,jetty 或 hornetq)
    2. integration-test 阶段执行测试
    3. 停止post-integration-test阶段的应用程序
    4. verify 阶段评估测试结果(例如,构建失败、生成 JUnit 报告)

    查看提供的链接中的示例。

    在您的特定情况下,您将在pre-integration-test 阶段启动所有服务器(通过使用hornetq-maven-pluginjetty-maven-plugin 可能还有maven-antrun-plugin),然后在post-integration-test 阶段停止它们。
    我建议使用 JUnit 或 TestNG 框架从 Java 执行 PUT 请求,因为它与 maven-failsafe-plugin 完美集成。如果可能,以编程方式启动(和停止)hornetq 消费者,作为 JUnit/TestNG 测试的一部分,因为您将在此处获得assert 结果。

    其他一些资源:

    【讨论】:

      猜你喜欢
      • 2017-01-29
      • 2018-06-05
      • 2021-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-19
      • 1970-01-01
      相关资源
      最近更新 更多