深入探索:单元测试之Categories

相关文章

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

转载于:https://my.oschina.net/u/1187675/blog/1534944

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值