gpt4 book ai didi

spring - Maven多模块项目中的集成测试

转载 作者:行者123 更新时间:2023-12-04 14:31:41 26 4
gpt4 key购买 nike

我有一个多模块项目,我现在想向它添加集成测试,我想使用 cargo 插件启动 tomcat 并在那里部署我的 Artifact ,然后使用 selenium 进行端到端测试。

我查看了我当前构建和 surefire 单元测试的 maven 控制台输出,然后阅读了故障安全插件的 maven 文档,这看起来不错,但看起来生命周期是针对每个模块的,因为日志表明一个模块在进入下一个模块之前进行测试然后构建。

我理解正确吗?

由于我的应用程序包含一个 war,它只是前端,然后连接到后端 api 应用程序,这是一个连接到数据库的 rest api,我需要在集成测试阶段将两个 war 文件部署到 cargo同时。

有人知道如何执行此操作,或者可以向我指出在 tomcat 中的多个 war 文件之间进行集成测试的教程吗?

谢谢

最佳答案

Maven插件生命周期如下:

  1. 验证 pom.xml
    • 初始化
  2. 生成资源
    • 过程源
  3. 生成资源
    • 过程资源
  4. 编译
    • 过程类
  5. 生成测试源
    • 处理测试源
  6. 生成测试资源
    • 处理测试资源
  7. 测试编译
    • 处理测试类
  8. 测试
  9. 准备包
  10. 预集成测试
  11. 集成测试
  12. 集成后测试
  13. 验证
  14. 安装
  15. 部署

org.mockserver可用于上述测试多个 war 文件的目的。

要将 MockServer 作为构建的一部分运行,请将以下插件添加到 pom.xml 中:

<plugin>
<groupId>org.mock-server</groupId>
<artifactId>mockserver-maven-plugin</artifactId>
<version>3.10.7</version>
<configuration>
<serverPort>1080</serverPort>
<proxyPort>1090</proxyPort>
<logLevel>DEBUG</logLevel>
<initializationClass>org.mockserver.maven.ExampleInitializationClass</initializationClass>
</configuration>
<executions>
<execution>
<id>process-test-classes</id>
<phase>process-test-classes</phase>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>verify</id>
<phase>verify</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>

This will start MockServer during the process-test-classes phase and will stop MockServer during the verify phase. For more details about Maven build phases see: Introduction to the Build Lifecycle.

This ensures that any integration tests you run during the test or integration-test phases can use MockServer on the port specified.

A full example演示 MVC 集成。

Maven Lifecycle Phases Diagram

Plugin goals can be attached to a lifecycle phase引用资料

关于spring - Maven多模块项目中的集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32370799/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com