【问题标题】:Integration testing in maven multi module projectMaven多模块项目中的集成测试
【发布时间】:2015-09-03 08:36:40
【问题描述】:

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

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

我理解正确吗?

由于我的应用程序包含一个仅作为前端的战争,然后它连接到后端 api 应用程序,该应用程序是一个连接到数据库的休息 api,我需要在集成测试阶段将两个战争文件部署到货物同一时间。

有谁知道如何做到这一点,或者可以向我指出一个在 tomcat 中的多个 war 文件之间进行集成测试的教程?

谢谢

【问题讨论】:

  • 看看here
  • 好吧,这看起来和我想的很相似,但这对构建为单独模块的 2 个战争文件有效吗?
  • 只是添加更多可部署的情况吗?
  • 您可以使用叠加层并将它们组合成一个单一的war文件。看看here。
  • 是否有可能像您的示例一样并拥有一个集成测试模块本身,并在此模块中添加对届时将构建的两个工件的依赖关系,然后使用多个可部署并部署两者同时通过cargo到tomcat?

标签: spring maven integration-testing cargo


【解决方案1】:

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>

这将在 process-test-classes 阶段启动 MockServer,并在验证阶段停止 MockServer。有关 Maven 构建阶段的更多详细信息,请参阅:构建生命周期简介。

这确保您在测试或集成测试阶段运行的任何集成测试都可以在指定的端口上使用 MockServer。

full example 演示 MVC 集成。

参考文献

【讨论】:

    猜你喜欢
    • 2018-09-10
    • 2019-06-03
    • 2021-07-22
    • 2010-12-16
    • 2014-10-13
    • 2017-01-29
    • 2018-04-19
    • 1970-01-01
    相关资源
    最近更新 更多