• 使用Gradle运行集成测试


    使用Gradle运行集成测试

    如果Gradle构建的项目是一个web项目的话,里面可能包含一些集成测试和功能性测试。这些测试和单元测试不同之处是在运行之前要先在本地将web服务启动起来,并且跑完测试后能够自动的关闭web服务。

    在本地启动web服务我们可以使用Gradle内置的jetty插件。jetty是一个轻量级的web容器,其执行速度快,配置简单,远程调试方便。启用jetty只需在build.gradle中加入对这个插件的引用。

    build.gradle
    1
    
    apply plugin: 'jetty'
    

    之后可以配置war包的名称,启动的端口等属性。

    build.gradle
    1
    2
    3
    4
    5
    6
    
    apply plugin: 'jetty'
    httpPort = 9876
    [jettyRun, jettyRunWar, jettyStop]*.stopPort = 9966
    [jettyRun, jettyRunWar, jettyStop]*.stopKey = 'stopKey'
    

    我们需要将集成测试与一般的单元测试分开。因为单元测试并不需要事先启动web服务,保证其执行速度快,能够得到更快的反馈。一般做法是单元测试后缀名为Test.java,集成测试后缀名为IntegrationTest.java。

    配置单元测试执行的测试集合。

    build.gradle
    1
    2
    3
    4
    
    test {
      include '**/*Test.class'
      exclude '**/*IntegrationTest.class'
    }
    

    然后新建一个Task,用于运行集成测试。

    build.gradle
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    task intTest(type: Test, dependsOn: test) {
      include '**/*IntegrationTest.class'
      doFirst {
          jettyRun.daemon = true
          jettyRun.execute()
      }
      doLast {
          jettyStop.execute()
      }
    }
    

    上述代码首先是创建一个名为intTest的task,其类型为Test,依赖于test task。该集成测试只会运行后缀名为IntegrationTest的测试类。在运行测试之前,首先采用后台模式启动jetty服务器,运行完测试后再调用jettyStop task停止jetty服务。

    为了使我们在运行gradle build时也会运行intTest task,可以添加对intTest的依赖。

    build.gradle
    1
    
    build.dependsOn intTest
    

    这样在运行gradle build时也会运行集成测试。并且在集成测试前后web服务会自动的启动和关闭。

    作者:黄博文@无敌北瓜 
    出处:http://www.cnblogs.com/huang0925
    黄博文的地盘
    本文版权归本人和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
     
    分类: 编程开发
  • 相关阅读:
    关于二进制包安装MySQL出现yum安装保护多库场景解决
    关于 Fatal NI connect error 12170 错误
    调优排故笔记1-利用等待事件及相关文件和视图-Oracle内核揭秘
    MySQL的四种隔离级别
    Oracle绑定变量
    接口加密测试
    接口测试用例设计
    学习总结——接口测试中抓包工具的使用
    学习总结——JMeter做WebService接口功能测试
    JMeter做http接口压力测试
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3468342.html
Copyright © 2020-2023  润新知