如果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服务会自动的启动和关闭。

最新文章

  1. catalina
  2. ListView上拉加载,下拉刷新 PullToRefresh的使用
  3. oracle often commands
  4. Java 中的 static 使用之静态方法
  5. 使用xshell链接本地虚拟机中的Linux
  6. ASP.Net 添加 Interop for Word, excel 插件
  7. pycharm 2017新建文件添加编码方式等
  8. Android Studio撤销与SVN的关联
  9. bat如何提取文本指定行的内容
  10. VS 2015 Android 环境设置
  11. CH #46A - 磁力块 - [分块]
  12. 计数器控件实例 NumericStepper
  13. 【371】Twitter 分类相关
  14. Git学习笔记 --第一章
  15. Yarn遭到挖矿病毒攻击
  16. 北京联通IPTV 数码视讯 Q1 破解过程
  17. vi的复制粘贴命令 -- (转)
  18. Android -- ImageLoader简析
  19. 深海划水队项目---七天冲刺day1
  20. php面向对象类中常用的魔术方法

热门文章

  1. IRelationalOperator空间关系接口简介
  2. redis3.0.5集群部署安装详细步骤
  3. java打包遇到问题java.io.IOException: invalid header field
  4. Bash Shell实用快捷键
  5. scala学习:apply方法
  6. DrawerLayout学习,抽屉效果
  7. 基于阿里云服务器的git服务器搭建
  8. (转载)selenium-webdriver(python)
  9. C# webApi 与 AngularJs 实现增删改Demo 讲解(一)
  10. oracle中,拼接的字符串给游标赋值