maven多模块项目中的集成测试

时间:2015-09-03 08:36:40

标签: spring maven integration-testing cargo

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

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

我是否正确理解了这一点?

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

有人知道如何做到这一点,还是可以指向我在tomcat中对多个war文件进行集成测试的教程?

由于

1 个答案:

答案 0 :(得分:1)

Maven插件生命周期如下:

  1. 验证pom.xml
    • 初始化
  2. 产生来源
    • 过程来源
  3. 生成资源
    • 处理资源
  4. 编译
    • 过程的类
  5. 生成 - 测试 - 源
    • 处理 - 测试 - 源
  6. 生成测试资源
    • 过程测试资源
  7. 测试编译
    • 过程检验类
  8. 测试
  9. 准备包
  10. 预集成测试
  11. 集成测试
  12. 整后试验
  13. 验证
  14. 安装
  15. 部署
  16. 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>
    
      

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

         

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

    full example演示了MVC集成。

    Maven Lifecycle Phases Diagram

    Plugin goals can be attached to a lifecycle phase <强>参考

相关问题