category

 一、category 和 testSuite的比较

(1)testSuite是类级分组(xx.class)

(2)category是用例级分组(@Test)

(3)category是testSuite的升级:Category可以实现TestSuite的功能

二、category使用步骤

1、创建好测试类,及测试类中的测试用例

2、创建接口:按用例的分组来创建

3、@Category注解:将用例用@Category注解分组

4、创建类来执行这些分组的类

三、实例

1、创建测试类A.java,B.java

 
 1 package zttc.itat.Category;
 2 import org.junit.Test;
 3 import org.junit.experimental.categories.Category;
 4 public class A {
 5     @Test
 6     public void a() {
 7         System.out.println("A a()");
 8     }
 9      
10     //用例分组:SlowTests.class
11     @Category(SlowTests.class)
12     @Test
13     public void b() {
14         System.out.println("A b()");
15     }
16 }
A.java
 1 package zttc.itat.Category;
 2 
 3 import org.junit.Test;
 4 import org.junit.experimental.categories.Category;
 5 
 6 //@Category注解中,可以使用多个分类类型,eg:@Category({A.class,B.class});
 7 @Category({
 8     SlowTests.class,
 9     FastTests.class
10 })
11 public class B {
12     @Test
13     public void c() {
14         System.out.println("B c()");
15     }
16     
17     @Test
18     public void d() {
19         System.out.println("B d()");
20     }
21 }
B.java

2、创建接口SlowTests.java、FastTests.java(用例分几组,就创建几个接口)

1 package zttc.itat.Category;
2 public interface SlowTests {
3      
4 }
SlowTests.java
1 package zttc.itat.Category;
2 public interface FastTests{
3      
4 }
FastTests.java

3、@Category注解:将用例用@Category注解分组

(1)@Category可以注解在用例上,也可以注解在类上;

(2)一个用例可以同时在多个组:@Category可以使用多个分组类型,eg:@Category({A.class,B.class})

4、创建类来执行这些分组的类

 1 package zttc.itat.Category;
 2 import org.junit.experimental.categories.Categories;
 3 import org.junit.experimental.categories.Categories.IncludeCategory;
 4 import org.junit.experimental.categories.Categories.ExcludeCategory;
 5 import org.junit.runner.RunWith;
 6 import org.junit.runners.Suite;
 7 import zttc.itat.Category.A;
 8 import zttc.itat.Category.B;
 9 //表示此类为Category类
10 @RunWith(Categories.class)
11 //要运行的类
12 @Suite.SuiteClasses({
13     A.class,
14     B.class
15     }) // Note that Categories is a kind of Suite
16 @IncludeCategory(SlowTests.class)//要运行的用例组
17 //@ExcludeCategory(FastTests.class)//不要运行的用例组
18 public class SlowTestSuite {
19  // Will run A.b、 B.c and B.d, but not A.a
20 }

【注】SlowTestSuite.java没有 @IncludeCategory 和 @ExcludeCategory 注解,功能同testSuite

原文地址:https://www.cnblogs.com/shanJX/p/4789089.html