如何对maven中的所有模块进行集成测试?
How to do integration test with all the module in maven?
例如,我有一个包含 2 个模块的 maven 项目。一个REST服务模块,一个hornetq jms模块。
手动方式为:
- 运行 嵌入式码头服务器应用程序
- 运行 嵌入式 hornetq 服务器
- 向REST服务器发送PUT请求(REST服务器作为hornetq生产者将请求消息推送到hornetq队列)
- 启动一个 hornetq 消费者来接收排队的消息
如何使用 maven 与他们进行集成测试?
答案是 maven-failsafe-plugin
(参见文档 http://maven.apache.org/surefire/maven-failsafe-plugin/usage.html)。它可以让你
- 在
pre-integration-test
阶段启动应用程序(例如,jetty 或 hornetq)
- 在
integration-test
阶段执行测试
- 在
post-integration-test
阶段停止应用程序
- 评估
verify
阶段的测试结果(例如,构建失败,生成 JUnit 报告)
查看提供的示例 link。
在您的特定情况下,您将在 pre-integration-test
阶段启动所有服务器(通过使用 hornetq-maven-plugin
和 jetty-maven-plugin
以及可能的 maven-antrun-plugin
),然后停止它们在 post-integration-test
阶段。
我建议使用 JUnit 或 TestNG 框架从 Java 执行 PUT 请求,因为它与 maven-failsafe-plugin
完美集成。如果可能,以编程方式启动(和停止)hornetq 消费者作为 JUnit/TestNG 测试的一部分,因为在那里你会 assert
结果。
一些其他资源:
例如,我有一个包含 2 个模块的 maven 项目。一个REST服务模块,一个hornetq jms模块。
手动方式为:
- 运行 嵌入式码头服务器应用程序
- 运行 嵌入式 hornetq 服务器
- 向REST服务器发送PUT请求(REST服务器作为hornetq生产者将请求消息推送到hornetq队列)
- 启动一个 hornetq 消费者来接收排队的消息
如何使用 maven 与他们进行集成测试?
答案是 maven-failsafe-plugin
(参见文档 http://maven.apache.org/surefire/maven-failsafe-plugin/usage.html)。它可以让你
- 在
pre-integration-test
阶段启动应用程序(例如,jetty 或 hornetq) - 在
integration-test
阶段执行测试 - 在
post-integration-test
阶段停止应用程序 - 评估
verify
阶段的测试结果(例如,构建失败,生成 JUnit 报告)
查看提供的示例 link。
在您的特定情况下,您将在 pre-integration-test
阶段启动所有服务器(通过使用 hornetq-maven-plugin
和 jetty-maven-plugin
以及可能的 maven-antrun-plugin
),然后停止它们在 post-integration-test
阶段。
我建议使用 JUnit 或 TestNG 框架从 Java 执行 PUT 请求,因为它与 maven-failsafe-plugin
完美集成。如果可能,以编程方式启动(和停止)hornetq 消费者作为 JUnit/TestNG 测试的一部分,因为在那里你会 assert
结果。
一些其他资源: