使用Gradle运行集成测试

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

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

  apply plugin: 'jetty'

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

  apply plugin: 'jetty'

  httpPort = 9876

  [jettyRun, jettyRunWar, jettyStop]*.stopPort = 9966

  [jettyRun, jettyRunWar, jettyStop]*.stopKey = 'stopKey'

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

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

  test {

  include '**/*Test.class'

  exclude '**/*IntegrationTest.class'

  }

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


build.gradle

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.dependsOn intTest

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

时间: 2024-09-21 22:18:24

使用Gradle运行集成测试的相关文章

Elcipse安装gradle插件

参考:             http://www.gradle.org/docs/current/userguide/installation.html (1)下载Gradle 官网下载www.gradle.org/get-started (2)将GRADLE_HOME/bin/加入$PATH. 将解压,得到gradle-1.8,然后拷贝到/usr:                                                 输入sudo  cp -r gradle-1.

Gradle学习之Eclipse构建Gradle工程

在 eclipse 下利用 gradle 构建系统 本文为转载:http://www.ibm.com/developerworks/cn/opensource/os-cn-gradle/ 基本开发环境 操作系统:本教程使用的为 Windows Vista Enterprise, 如果您的系统是 Linux 的,请选择下载对应版本的其他工具,包括开发工具.Java EE 服务器.Apache Ant.SoapUI. 开发工具:Eclipse IDE for SOA Developers 版本,请到

gradle

org.gradle.parallel=true # 并行构建 org.gradle.daemon=true # 开启Gradle守护进程 org.gradle.jvmargs=-Xms256m -Xmx1024m # 配置JVM<参照下图>   原文  http://mdsa.51cto.com/art/201512/501232.htm   0.讲个故事 0.1 Ant,我还真以为你是只蚂蚁 真正开始近距离接触编程其实是在2012年,年底的时候带我的大哥说,咱们这个 app 发布的时候手动

gradle构建android项目详解

1.用Gradle构建 1.1 工程结构 如图所示,这是一个不能更普通的Android的Gradle工程了. 根目录下面的settings.gradle当中主要是用来include子模块的,比如我们这个工程有一个叫作app的子模块,那么settings.gradle的内容如下: include ':app' 根目录下面的build.gradle包含一些通用的配置,这些配置可以在各个子模块当中使用. gradle.properties文件包含的属性,会成为project的properties的成员

快速掌握Flyway

什么是Flyway? Flyway is an open-source database migration tool. It strongly favors simplicity and convention over configuration. Flyway是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式.Flyway可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,不需要复杂的配置,Migrations可以写成SQL脚本,也可以写在Java

Spring Batch在大型企业中的最佳实践

在大型企业中,由于业务复杂.数据量大.数据格式不同.数据交互格式繁杂,并非所有的操作都能通过交互界面进行处理.而有一些操作需要定期读取大批量的数据,然后进行一系列的后续处理.这样的过程就是"批处理". 批处理应用通常有以下特点: 数据量大,从数万到数百万甚至上亿不等: 整个过程全部自动化,并预留一定接口进行自定义配置: 这样的应用通常是周期性运行,比如按日.周.月运行: 对数据处理的准确性要求高,并且需要容错机制.回滚机制.完善的日志监控等. 什么是Spring batch Sprin

安卓 DevOps:从一次推送命令到生产

DevOps 是一种广为人知的活动,其主要目的是使软件交付自动化.的确,DevOps 的目标是持续测试.代码质量.功能开发和更轻松地进行维护更新.因此,DevOps 的终极目标之一是让开发者可以执行快速可靠.自动化的发布,理想状态下,整个流程都不需要人为操作.这被称为持续交付.撰写本文的目的是展示我们现在也能在安卓上实现这一目标,同时分享笔者的想法和反馈意见. 以持续集成为起点 为了实现持续交付,必须确保强大的持续集成.这已经在安卓环境实行一段时间了,但是为了清楚起见,咱们还是回顾一下吧. 首先

.Net架构必备工具列表

原文:.Net架构必备工具列表 N多年前微软官网曾发了.Net下必备的十种工具,N多年过去了,世异时移,很多东西都已经变化了,那个列表也似乎陈旧了.而且,该文也只是对十种工具独立的介绍,显得有些罗列的感觉,是不是每个工具都是同等重要,工具与工具之间是否有联系?等等,阐述得并不明确. 这里,我想从另一个角崖,重新归纳一个更新的更实际的武器库.更新,是因为有很多最近几年才出来的工具/框架库,更实际,是因为我自己的项目就完全依赖使用. Visual Studio 这个似乎是不言而喻的,只是从严谨的角度

《Google软件测试之道》—第2章2.1节SET的工作

第2章 软件测试开发工程师 Google软件测试之道 C:\Documents and Settings\Administrator\桌面\页面提取自- 9780321803023_book.jpg 在理想情况下,一个完美的开发过程是怎样进行的呢?测试先行,在一行代码都没有真正编写之前,一个开发人员就会去思考如何测试他即将编写的代码.他会设计一些边界场景的测试用例,数据取值范围从极大到极小.导致循环语句超出限制范围的情况,另外还会考虑很多其他的极端情况.这些测试代码会作为产品代码的一部分,以自检