gradle运行测试代码

我们可以使用Java插件添加的test任务,使用Gradle运行测试代码。 默认情况下,将执行项目中找到的所有测试。 如果要运行一个测试,可以使用Java系统属性test.single和测试名称。 实际上,系统属性的模式是taskName .singletaskName是我们项目中Test类型的任务的名称。 我们将看到如何在构建中使用它。

首先,我们创建一个简单的build.gradle文件来运行测试:

// File: build.gradle
apply plugin: 'java'repositories {mavenCentral()
}dependencies {testCompile 'junit:junit:[4,)'
}test {testLogging {// Show that tests are run in the command-line outputevents 'started', 'passed'}
}

接下来,我们创建两个测试类,每个类都有一个单独的测试方法,只是为了说明我们以后可以将它们作为单个测试来调用。

// File: src/test/java/com/mrhaki/gradle/SampleTest.java
package com.mrhaki.gradle;import static org.junit.Assert.*;
import org.junit.*;public class SampleTest {@Test public void sample() {assertEquals("Gradle is gr8", "Gradle is gr8");}}
// File: src/test/java/com/mrhaki/gradle/AnotherSampleTest.java
package com.mrhaki.gradle;import static org.junit.Assert.*;
import org.junit.*;public class AnotherSampleTest {@Test public void anotherSample() {assertEquals("Gradle is great", "Gradle is great");}
}

要仅运行SampleTest我们必须使用Java系统属性-Dtest.single=Sample从命令行调用test任务:

$ gradle -Dtest.single=Sample test
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:compileTestJava
:processTestResources UP-TO-DATE
:testClasses
:testcom.mrhaki.gradle.SampleTest > sample STARTEDcom.mrhaki.gradle.SampleTest > sample PASSEDBUILD SUCCESSFULTotal time: 11.404 secs

注意,现在仅执行一个测试。 Gradle将获取值Sample ,并在以下模式中使用它** / <Java系统属性value = Sample> *。class来查找测试类。 因此,我们不必键入单个测试类的完整软件包和类名。 要仅调用AnotherSampleTest测试类,我们使用Java systme属性的不同值运行test任务:

$ gradle -Dtest.single=AnotherSample test
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:compileTestJava
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:testcom.mrhaki.gradle.AnotherSampleTest > anotherSample STARTEDcom.mrhaki.gradle.AnotherSampleTest > anotherSample PASSEDBUILD SUCCESSFULTotal time: 5.62 secs

我们还可以对Java系统属性使用一种模式,以运行适用于该模式的多个测试。 例如,我们可以使用* Sample来运行SampleTestAnotherSampleTest

$ gradle -Dtest.single=*Sample test
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:compileTestJava
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:testcom.mrhaki.gradle.AnotherSampleTest > anotherSample STARTEDcom.mrhaki.gradle.AnotherSampleTest > anotherSample PASSEDcom.mrhaki.gradle.SampleTest > sample STARTEDcom.mrhaki.gradle.SampleTest > sample PASSEDBUILD SUCCESSFULTotal time: 5.605 secs

为了显示Java系统属性也适用于Test类型的其他任务,我们在build.gradle文件中添加了一个新任务。 我们将任务命名为sampleTest并包括我们的测试。 现在,我们还将相同的testLogging应用于Test类型的所有任务,以便可以看到输出。

// File: build.gradle
apply plugin: 'java'repositories {mavenCentral()
}dependencies {testCompile 'junit:junit:[4,)'
}task sampleTest(type: Test, dependsOn: testClasses) {include '**/*Sample*'
}tasks.withType(Test) {testLogging {events 'started', 'passed'}
}

接下来,我们只想运行SampleTest类,但是现在我们使用Java系统属性-DsampleTest.single=S*

$ gradle -DsampleTest.single=S* sampleTest
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:sampleTestcom.mrhaki.gradle.SampleTest > sample STARTEDcom.mrhaki.gradle.SampleTest > sample PASSEDBUILD SUCCESSFULTotal time: 10.677 secs

用Gradle 1.6编写的代码

参考: Gradle的好处:在JDriven博客上,由我们的JCG合作伙伴 Hubert Ikkink 运行单个测试 。

翻译自: https://www.javacodegeeks.com/2013/05/gradle-goodness-running-a-single-test.html

gradle运行测试代码

gradle运行测试代码_Gradle的好处:运行单个测试相关推荐

  1. Gradle的好处:运行单个测试

    我们可以使用Java插件添加的test任务,使用Gradle运行测试代码. 默认情况下,将执行项目中找到的所有测试. 如果要运行单个测试,则可以使用Java系统属性test.single和测试名称. ...

  2. gradle引入依赖:_Gradle入门:依赖管理

    gradle引入依赖: 即使不是没有可能,创建没有任何外部依赖关系的现实应用程序也是一项挑战. 这就是为什么依赖性管理是每个软件项目中至关重要的部分的原因. 这篇博客文章描述了我们如何使用Gradle ...

  3. 如何在gradle上仅运行一个测试类

    本文翻译自:How to run only one test class on gradle I am new to Gradle. 我是Gradle的新手. I use Gradle 1.10 an ...

  4. gradle 命令行_Gradle命令行便利

    gradle 命令行 在我的<用Gradle构建Java的gradle tasks >一文中,我简要提到了使用Gradle的" gradle tasks "命令来查看特 ...

  5. 为什么单片机的代码在Flash中运行,单片机的代码运行位置跟电脑有什么不同?

    1. 单片机与电脑,在代码运行空间的区别 单片机与 电脑/Linux嵌入式 在代码运行的空间上不同.大多数单片机,代码都是在Flash中运行的.而电脑/linux嵌入式,是将代码从存储介质(可能是硬盘 ...

  6. 一套代码小程序WebNative运行的探索03——处理模板及属性

    接上文: 一套代码小程序&Web&Native运行的探索02 对应Git代码地址请见:https://github.com/yexiaochai/wxdemo/tree/master/ ...

  7. 什么是代码签名?代码签名的好处

    如果您希望用户从互联网上下载安装您的软件程序,那么获取客户的信任是很重要的.用户需要知道软件程序是否来源可信的软件开发商:在互联网传播过程中,是否被恶意篡改,比如植入恶意病毒.代码签名就是一种基于密码 ...

  8. tensorflow-gpu运行测试代码,卡在 I tensorflow/core/common_runtime/gpu/gpu_device.cc:1512] Adding visible gpu

    新建一个环境解释器后,想要运行测试代码如下,会发现不管是cmd运行还是pycharm运行,都会卡在"Device mapping"的上一句 I tensorflow/core/co ...

  9. 最全Pycharm教程(3)——代码的调试、运行

    如果觉得这篇文章对您有所启发,欢迎关注我的公众号,我会尽可能积极和大家交流,谢谢. 最全Pycharm教程(1)--定制外观 最全Pycharm教程(2)--代码风格 1.准备工作 (1)Python ...

最新文章

  1. 学习决心书-linux oldboy
  2. 数据采集框架Gobblin简介
  3. 潜在语义分析对认知科学的启示
  4. Python的继承多态
  5. 【笔试题】C语言结构体中,不同的数据类型在32位和64位下所占字节的区别
  6. ipad和iphone切图_如何在iPhone和iPad上的Messages App中固定对话
  7. Linux 部分常用命令
  8. ApiController得到服务器端绝对路径
  9. android自定义控件(6)-详解在onMeasure()方法中如何测量一个控件尺寸
  10. python语句分为什么_Python为什么使用缩进来分组语句?
  11. 美图2019年财报发布:“高级订阅”收入亮眼 成为重要商业模式
  12. CodeForces 444C. DZY Loves Physics(枚举+水题)
  13. RedHat中squid简易配置
  14. HDU 5514 欧拉函数应用
  15. python如何实现单例模式_用Python实现设计模式——单例模式
  16. html登录页面代码实现原理,web登录代码
  17. PS CC 2018安装插件imagemotion
  18. Go语言适合做什么?
  19. 选择驱动便携式计算机显示器GPU,显示器不是最佳分辨率怎么办
  20. 站在巨人的肩膀上,C++开源库大全

热门文章

  1. Sentinel(六)之集群流控
  2. jsdiff 比较文本内容差异
  3. (一)Web Service——基本概念
  4. sqlserver建库建表建约束,删库删表删约束的示例总结
  5. 使用Servlet上传多张图片——Dao层(BaseDao.java)
  6. Hibernate中使用Criteria查询及注解——(HibernateUtil)
  7. spingmvc 通过xml配置redis jedispol 有密码 通过xml配置redis中的 jedispool(有密码)
  8. docker 安装elasticsearch
  9. mmall工程生成dao层的插件出错了出错了 自动生成mapper 的插件出错了
  10. springboot创建项目