文档章节

深入探索:单元测试之Categories

灯-塔
 灯-塔
发布于 2017/09/11 10:25
字数 572
阅读 14
收藏 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
博文 39
码字总数 63914
作品 0
广州
程序员
PIT 0.33 发布,单元测试检测工具

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

oschina
2014/02/21
1K
0
Spring Boot和Spring Cloud学习资源推荐

比较好的学习资源,分享一下。 1、Spring Boot官方文档:http://projects.spring.io/spring-boot/ 2、Spring Cloud官方文档:http://projects.spring.io/spring-cloud/ Spring Boot学习地址 ...

懂得-奉献
2017/10/20
0
1
软件测试读书列表

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

honzhang
2016/09/07
0
0
测试基础介绍

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

测试猴
01/02
0
0
网易云课堂-软件测试方法和技术实践

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

xjhznick
2015/03/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

es6

在实际开发中,我们有时需要知道对象的所有属性,原生js给我们提供了一个很好的方法:Object.keys(),该方法返回一个数组 传入对象,返回属性名 var obj = {'a':'123','b':'345'};console.l...

不负好时光
14分钟前
0
0
叮!您收到一份超值Java基础入门资料!

摘要:Java语言有什么特点?如何最大效率的学习?深浅拷贝到底有何区别?阿里巴巴高级开发工程师为大家带来Java系统解读,带你掌握Java技术要领,突破重点难点,入门面向对象编程,以详细示例...

全部原谅
16分钟前
0
0
web.xml容器加载顺序

容器对于web.xml的加载过程是context-param >> listener >> fileter >> servlet

Aeroever
18分钟前
1
0
Docker容器日志查看与清理

1. 问题 docker容器日志导致主机磁盘空间满了。docker logs -f container_name噼里啪啦一大堆,很占用空间,不用的日志可以清理掉了。 2. 解决方法 2.1 找出Docker容器日志 在linux上,容器日...

muzi1994
19分钟前
0
0
J2Cache 和普通缓存框架有何不同,它解决了什么问题?

不少人看到 J2Cache 第一眼时,会认为这就是一个普普通通的缓存框架,和例如 Ehcache、Caffeine 、Spring Cache 之类的项目没什么区别,无非是造了一个新的轮子而已。事实上完全不是一回事!...

红薯
22分钟前
456
14

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部