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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/368999.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上下div高度动态自适应--另类处理方案

这段时间在工作中遇到一个看似较为棘手的问题。问题描述&#xff1a;查询报表页面分为上下两部分&#xff0c;上部分为条件输入区域&#xff0c;下部分为报表展示区域。客户要求做到默认满屏&#xff08;但要动态适应不同的窗体大小&#xff0c;也就是浏览器窗体用户会手动改变…

java缓冲输入流_java _io_字符缓冲流的输入、输出

新增方法:输入:BufferedReader breadernew BufferedReader(Reader reader);.readLine()读取一行内容&#xff0c;返回字符串输出:BufferedWriter bwriternew BufferedWirter(Writer writer);.newLine() 写入一个换行符输入:File f new File("C:\Users\10853\eclipse-works…

Android Activity has leaked window that was originally added

今天调试程序时log中突然打印这样的错误&#xff0c;但是程序并没有crash&#xff0c;为了不放过一个错误&#xff0c;我决定调查一下。 当时是离开一个activity&#xff0c;然后提示是否退出此界面&#xff0c;接下来就打印此错误&#xff1a; 03-08 18:02:48.521: E/WindowMa…

201571030316/201571030314 《小学四则运算练习软件需求说明》结对项目报告

小伙伴儿的博客地址链接&#xff1a;http://www.cnblogs.com/mjuan/p/8877738.html 我的学号&#xff1a;201571030316 小伴儿的学号&#xff1a;201571030314 一、调研过程&#xff1a; 1. 调查问卷&#xff1a;https://www.wjx.cn/jq/22680271.aspx利用问卷…

关于Java 8的Optional的介绍

我最近发现了JDK 8中Optional类型的添加。 Optional类型是避免NullPointerException一种方法&#xff0c;因为从方法中获取Optional返回值的API使用者被“强制”执行“在线”检查&#xff0c;以消耗其实际返回值。 更多细节可以在Javadoc中看到。 可以在此博客文章中找到非常有…

如何加快HTML页面加载速度

1. 页面减肥 a. 页面的肥瘦是影响加载速度最重要的因素。 b. 删除不必要的空格、注释。 c. 将inline的script和css移到外部文件。 d. 可以使用HTML Tidy来给HTML减肥&#xff0c;还可以使用一些压缩工具来给JavaScript减肥。 2. 减少文件数量 a. 减少页面上引用的文件数…

java 英文字符串排序_英文字符串排序算法

编程工作偶尔会遇到一些不常见问题需要处理&#xff0c;学编程处理问题也难免需要熟悉一些算法以前学习的时候就遇到过一个看似简单的排序算法问题&#xff0c;当时的解决办法是我没有用过的&#xff0c;在此记录一下问题 - 英文字符串排序如下几个英文单词或者字母apple&#…

23种设计模式之一(单例模式)

单例模式&#xff1a;&#xff08;确保一个类最多只有一个实例&#xff0c;并提供一个全局访问点&#xff09; 存在的意义&#xff1a; 有些对象我们只需要一个&#xff0c;如&#xff1a;线程池、缓存、硬件设备等&#xff1b;如果使用多个实例就会造成冲突、不一致等&#xf…

mysql监控

1、查看mysql所有线程&#xff1a;show full processlist;SHOW PROCESSLIST显示哪些线程正在运行。如果您有SUPER权限&#xff0c;即root权限之类&#xff0c;您可以看到所有线程。否则&#xff0c;您只能看到您自己的线程&#xff08;也就是&#xff0c;与您正在使用的MySQL账…

vSphere ESXi主机配置iSCSI存储

vSphere ESXi主机配置iSCSI存储 vSphere ESXi主机一般连接的存储类型有光纤存储、iSCSI存储两类。本次案例为iSCSI存储连接ESXi主机的配置。 案例环境&#xff1a;ESXi主机通过以太网络来连接iSCSID存储&#xff0c;并获取到存储空间&#xff0c;拓扑如下&#xff1a; 首先完成…

Java EE 7:带有Glassfish v4的JMS 2.0

Java EE 7最近已被执行委员会接受 。 这意味着我们很快将在市场上提供Java EE 7应用服务器。 构成Java EE 7的规范之一是JMS 2.0 。 自1.1版以来&#xff0c;引入了一些有趣的改进。 JMS有很多怪异的东西&#xff0c;例如&#xff1a; Connection&#xff03;createSession&am…

css的优先级笔记

个人小站点&#xff1a;https://sundjly.github.io/ 来自《精彩绝伦的css》 1.css的优先级我们是用选择器的“特殊程度”&#xff1a; 每个元素的描述贡献&#xff08;如div&#xff0c;ul&#xff09;为0,0,0,1每个类&#xff08;class&#xff09;、伪类&#xff08;如:ho…

linux上验证cudnn是否安装成功_deepin15.7中安装tensorflow+cuda9.0+cudnn7的步骤

这次deepin15.7大更新&#xff0c;特别是深度学习环境搭建屡屡失败&#xff0c;很是恼火。本次按照下面的步骤做成功了&#xff0c;以下是deepin15.7下安装tensorflowcuda9.0cudnn7的全部流程。硬件1.神舟战神z7-kp7s1&#xff0c;双显卡双硬盘2.独显是gtx1060 6G系统安装1.下载…

AES加密和解密

来源1 来源2 1 { JsonSerializer serializer new JsonSerializer(); string[] strArray { "111","222","333","444","555","666"}; Boy boy new Boy(); boy.Age 15; boy.bir Convert.ToDateTime("1999…

[心平气和读经典]The TCP/IP Guide(003)

The TCP/IP Guide [Page 43, 44] Scope of The TCP/IP Guide | 本书的讨论范围 The first step to dealing with a problem is recognizing that you have one. So, I have to come clean with you, my reader. I have a problem: an addiction to... detail. :-) Every time I…

使用jclouds在S3上分段上传

1.目标 在上一篇文章中 &#xff0c;我们研究了如何使用jclouds中的通用Blob API将内容上传到S3。 在本文中&#xff0c;我们将使用jclouds的S3特定的异步API上传内容并利用S3提供的分段上传功能。 2.准备 2.1。 设置自定义API 上传过程的第一部分是创建jclouds API-这是针对…

【ichart】简单的统计图表ichart.js的使用

1、首先下载&#xff0c;点击下载 2、只需要这一个js&#xff0c;粘贴赋值到自己项目中即可。 3、引入js <script type"text/javascript" src"../js/ichart.1.2.min.js"></script> <script type"text/javascript" src"..…

java单击切换div_[Java教程]点击同一按钮实现div的隐藏与现实切换

[Java教程]点击同一按钮实现div的隐藏与现实切换0 2016-01-16 21:00:12点击同一按钮实现div的隐藏与现实切换:在很多应用中&#xff0c;都有这样的功能&#xff0c;点击同一个按钮可以实现div的隐藏或者现实&#xff0c;当然操作的并非必须是按钮或者div&#xff0c;不过原理是…

python链表的实现,有注释

class Node(): #node实现,每个node分为两部分:一部分含有链表元素,成数据域;另一部分为指针,指向下一个 __slots__[_item,_next] #限定node实例的属性??? 这个元素就是有两部分组成,,,一个指针一个数据,,,但是链表头就不是这样了 def __init__(self…

ActiveMQ——activemq的使用java代码实例(精选)

ActiveMQ 在java中的使用&#xff0c;通过单例模式、工厂实现 Jms规范里的两种message传输方式Topic和Queue&#xff0c;两者的对比如下表()&#xff1a; TopicQueue概要Publish Subscribe messaging 发布订阅消息Point-to-Point 点对点有无状态topic数据默认不落地&#xff…