文档章节

深入探索:单元测试之Categories

灯-塔
 灯-塔
发布于 2017/09/11 10:25
字数 572
阅读 10
收藏 0
点赞 1
评论 0

相关文章

Categories 的使用

从给定的一组测试类集,Categories runner 仅仅是运行类 和 方法 ,他们都会被**@IncludeCategory ** 注解标记分类,或被 category 的子类型标记。 类和接口都能被 用于 category 。分类的作品,如果你说是@IncludeCategory(SuperClass.class), 那么测试被标记为 @Category({SubClass.class}) 将会被运行。

public interface FastTests { /* category marker */ }
public interface SlowTests { /* category marker */ }

public class A {
  @Test
  public void a() {
    fail();
  }

  @Category(SlowTests.class)
  @Test
  public void b() {
  }
}

@Category({SlowTests.class, FastTests.class})
public class B {
  @Test
  public void c() {

  }
}

@RunWith(Categories.class)
@IncludeCategory(SlowTests.class)
@SuiteClasses( { A.class, B.class }) // Note that Categories is a kind of Suite
public class SlowTestSuite {
  // Will run A.b and B.c, but not A.a
}

@RunWith(Categories.class)
@IncludeCategory(SlowTests.class)
@ExcludeCategory(FastTests.class)
@SuiteClasses( { A.class, B.class }) // Note that Categories is a kind of Suite
public class SlowTestSuite {
  // Will run A.b, but not A.a or B.c
}

使用 Maven 整合categories

<build>
  <plugins>
    <plugin>
      <artifactId>maven-surefire-plugin</artifactId>
      <configuration>
        <groups>com.example.FastTests,com.example.RegressionTests</groups>
      </configuration>
    </plugin>
  </plugins>
</build>

使用 Gradle整合categories

test {
    useJUnit {
        includeCategories 'org.gradle.junit.CategoryA'
        excludeCategories 'org.gradle.junit.CategoryB'
    }
}

使用 SBT categories

SBT's junit-interface 允许特定的 JUnit categories 例如: --include-categories=<CLASSES> 和 --exclude-categories=<CLASSES>.

categories 的典型用法

Categories 常用于在测试中添加元数据。

常见的分类用法是: 自动测试的类型: UnitTests(单元测试), IntegrationTests(集成测试), SmokeTests(冒烟测试), RegressionTests(回归测试), PerformanceTests(性能测试) ... 测试执行快慢: SlowTests, QuickTests 在CI的哪部分构建测试应该被执行: NightlyBuildTests(每日构建的测试) 测试状态: UnstableTests(不稳定测试), InProgressTests(进行测试) 这也用于添加特定于项目的元数据,如项目的哪些特性被测试覆盖。

看到JUnit在GitHub托管项目类别用途: See usages of Junit Categories on github hosted projects

参考

Categories javadoc : https://github.com/junit-team/junit4/wiki/Categories

© 著作权归作者所有

共有 人打赏支持
灯-塔
粉丝 2
博文 35
码字总数 63914
作品 0
广州
程序员
PIT 0.33 发布,单元测试检测工具

PIT 0.33 发布,此版本添加了对 Java 8 的支持; JUnit categories an restores Maven 2 compatibility。 PIT 是一个快速的 Java 系统突变检测系统,可用来测试单元测试的有效性,测试单元测...

oschina ⋅ 2014/02/21 ⋅ 0

最近重点学习计划

目前的技术还有挺多不全面的地方,有很多系统api和常见类库连基本的用法都不熟悉。 基本用法熟悉的基础上,探索一下原理和进阶使用。 最近任务 写一个github开源项目,下载器的。如果能做成通...

云飞扬v5 ⋅ 2015/11/02 ⋅ 2

软件测试读书列表

测试入门 软件测试(第2版) Software Testing (2e), Ron Patton 一本测试入门的好书,较全面地介绍了各种测试领域和方法,为测试新手提供了正确的观念和宽泛的基础。 软件测试的艺术(第2版...

honzhang ⋅ 2016/09/07 ⋅ 0

网易云课堂-软件测试方法和技术实践

网易云课程-软件测试方法和技术实践 软件测试方法和内容: 单元测试、持续集成、系统测试、验收测试 测试计划、设计、执行,自动化测试 敏捷测试、探索式测试等 全程软件测试: 需求评审->设...

xjhznick ⋅ 2015/03/06 ⋅ 0

测试基础介绍

迅速找出重要程序问题 1.首先测试经过变更的部分,然后测试没有变化的部分,修改和更改都意味着新的风险 2.首先测试核心功能,然后测试辅助功能,测试产品所完成的关键和常用功能,测试完成产...

测试猴 ⋅ 01/02 ⋅ 0

.NET系列文章——近一年文章分类整理,方便各位博友们查询学习

由于博主今后一段时间可能会很忙(准备出书:《.NET框架设计—模式、配置、工具》,外加换了新工作),所以博客会很少更新; 在最近一年左右时间里,博主各种.NET技术类型的文章都写过,根据...

王清培 ⋅ 2014/03/02 ⋅ 0

Robolectric 探索之路

layout: post title: Roboletric探索之路,从抗拒到依赖 description: Roboletric Android Unit Testing category: blog --- 我为什么以前抗拒Android Unit Testing 1、懒,人类最大的天敌;...

ice_Anson ⋅ 2016/03/16 ⋅ 0

Android、JUnit深入浅出(一)——JUnit初步解析

Android、JUnit深入浅出(一)——JUnit初步解析 Android SDK 1.5已经将JUnit包含进来了,但是一直没有去深入了解,以前在使用一些C++的开源库中学习过与CPPUnit,简要分析过其主要框架,如下...

庸人谷 ⋅ 2012/12/26 ⋅ 0

2018职业测试必读书单

测试基础 软件测试(原书第2版) 全面系统地介绍了软件测试理论及应用技术,不仅讲述基本的测试技能,也讲述成为一个成功的软件测试员所必须掌握的技能。 软件测试的艺术(第3版) 从软件测试...

honzhang ⋅ 2017/12/22 ⋅ 0

落地TDD,需要知道的

TDD TDD是个好东西,推广时,需从Why/what/how来说明别人,结合最近看的一些资料,来说明一下问题: 1、单元测试的理由 《[高效程序员的45个习惯:敏捷开发修炼之道》中已经对于单元测试好处...

通爸 ⋅ 2017/12/24 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

vim编辑模式、vim命令模式、vim实践

vim编辑模式 编辑模式用来输入或修改文本内容,编辑模式除了Esc外其他键几乎都是输入 如何进入编辑模式 一般模式输入以下按键,均可进入编辑模式,左下角提示 insert(中文为插入) 字样 i ...

蛋黄Yolks ⋅ 27分钟前 ⋅ 0

大数据入门基础:SSH介绍

什么是ssh 简单说,SSH是一种网络协议,用于计算机之间的加密登录。 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码...

董黎明 ⋅ 46分钟前 ⋅ 0

web3j教程

web3j是一个轻量级、高度模块化、响应式、类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成。 汇智网最新发布的web3j教程,详细讲解...

汇智网教程 ⋅ 53分钟前 ⋅ 0

谷歌:安全问题机制并不如你想象中安全

腾讯科技讯 5月25日,如今的你或许已经对许多网站所使用的“安全问题机制”习以为常了,但你真的认为包括“你第一个宠物的名字是什么?”这些问题能够保障你的帐户安全吗? 根据谷歌(微博)安...

问题终结者 ⋅ 53分钟前 ⋅ 0

聊聊spring cloud gateway的RedisRateLimiter

序 本文主要研究下spring cloud gateway的RedisRateLimiter GatewayRedisAutoConfiguration spring-cloud-gateway-core-2.0.0.RELEASE-sources.jar!/org/springframework/cloud/gateway/con......

go4it ⋅ 今天 ⋅ 0

169. Majority Element - LeetCode

Question 169. Majority Element Solution 思路:构造一个map存储每个数字出现的次数,然后遍历map返回出现次数大于数组一半的数字. 还有一种思路是:对这个数组排序,次数超过n/2的元素必然在中...

yysue ⋅ 今天 ⋅ 0

NFS

14.1 NFS介绍 NFS是Network File System的缩写 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本 NFS数据传输基于RPC协议,RPC...

派派菠菜 ⋅ 今天 ⋅ 0

18.进入编辑模式 vim命令模式 实践

5.5 进入编辑模式 5.6 vim命令模式 5.7 vim实践 5.5 进入编辑模式: i 在当前字符前插入 I 在光标所在行的行首插入 a 在当前字符后插入 A 在光标所在行的行尾插入 o 在当前所在行的下一行插入...

王鑫linux ⋅ 今天 ⋅ 0

阻塞队列(2)--LinkedBlockingDeque底层实现

2.1 LinkedBlockingQueue是什么? 1.1 LinkedBlockingQueue是一个阻塞式的队列,继承自AbstractBlockingQueue,间接的实现了Queue接口和Collection接口。底层以链表的形式保存数据(双向链表,...

yokol ⋅ 今天 ⋅ 0

NFS介绍 NFS服务端安装配置 NFS配置选项

14.1 NFS介绍 14.2 NFS服务端安装配置 14.3 NFS配置选项 NFS介绍 NFS是Network File System的缩写;这个文件系统是基于网路层面,通过网络层面实现数据同步 NFS最早由Sun公司开发,分2,3,4三...

lyy549745 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部