一、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

 package zttc.itat.Category;
import org.junit.Test;
import org.junit.experimental.categories.Category;
public class A {
@Test
public void a() {
System.out.println("A a()");
} //用例分组:SlowTests.class
@Category(SlowTests.class)
@Test
public void b() {
System.out.println("A b()");
}
}

A.java

 package zttc.itat.Category;

 import org.junit.Test;
import org.junit.experimental.categories.Category; //@Category注解中,可以使用多个分类类型,eg:@Category({A.class,B.class});
@Category({
SlowTests.class,
FastTests.class
})
public class B {
@Test
public void c() {
System.out.println("B c()");
} @Test
public void d() {
System.out.println("B d()");
}
}

B.java

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

 package zttc.itat.Category;
public interface SlowTests {
     
}

SlowTests.java

 package zttc.itat.Category;
public interface FastTests{ }

FastTests.java

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

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

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

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

 package zttc.itat.Category;
import org.junit.experimental.categories.Categories;
import org.junit.experimental.categories.Categories.IncludeCategory;
import org.junit.experimental.categories.Categories.ExcludeCategory;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import zttc.itat.Category.A;
import zttc.itat.Category.B;
//表示此类为Category类
@RunWith(Categories.class)
//要运行的类
@Suite.SuiteClasses({
A.class,
B.class
}) // Note that Categories is a kind of Suite
@IncludeCategory(SlowTests.class)//要运行的用例组
//@ExcludeCategory(FastTests.class)//不要运行的用例组
public class SlowTestSuite {
// Will run A.b、 B.c and B.d, but not A.a
}

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

category - junit用例分组执行的更多相关文章

  1. 【Pytest05】全网最全最新的Pytest框架之用例分组执行

    一.Fixture用例分组运行常用于冒烟测试,分模块运行等 pytest.ini配置文件中增加分组参数markers来实现用例分组,如: markers = g1:组一 smoke:冒烟测试 pyte ...

  2. Pytest_用例分组(6)

    用例分组 pytest进行分组测试的方法是使用装饰器 @pytest.mark.标记名称,被标记为相同名称的用例可以看做为同一个组. 分组用例的运行方式是在执行命令中追加 -m "标记名称& ...

  3. IDEA导包(以junit为例)

    ## IDEA导包(以junit为例) 1. 准备junit的jar包: * hamcrest-core-1.3.jar * junit-4.12.jar 2. 在项目中新建文件夹:lib 3. 将j ...

  4. python--selenium多线程执行用例实例/执行多个用例

    python--selenium多线程执行用例实例/执行多个用例 我们在做selenium测试的时候呢,经常会碰到一些需要执行多个用例的情况,也就是多线 程执行py程序,我们前面讲过单个的py用例怎么 ...

  5. Python-获取前一条用例的执行结果

    import unittest,HTMLTestRunner from nose_parameterized import parameterized def login(username,passw ...

  6. pybot执行多条用例时,某一个用例执行失败,停止所有用例的执行

    问题: pybot执行多条用例时,某一个用例执行失败,停止所有用例的执行 解决办法: pybot -exitonfailure E:\robot\呼送项目\测试用例\基本流程\主流程.txt 参考文章 ...

  7. appium学习【二】:用try捕获异常后,用例的执行结果为pass

    在代码中用try..except捕获异常截图后,HTMLTestRunner生成的测试报告中,用例的执行结果为pass 解决办法为: 在try..except后加raise,只要再加个raise就行了 ...

  8. TestNG设置用例循环执行

    曾经做过一需求,需要单个集成测试用例循环执行N次,或许你会说for循环就可以了,这当然是可以的.那有没有逼格更高点的方法,当然也是有的.下面我们就说下使用TestNG注解功能实现用例的循环执行. 1. ...

  9. 章节十六、4-TestNG高级功能--把测试方法分优先级、分组执行

    一. 把测试方法分优先级执行----->(priority=索引) 1.新建一个testng方法 package testclasses; import org.testng.annotatio ...

随机推荐

  1. php中include()和require()的区别

    1.引用文件方式 对 include()来说,在include()执行时文件每次都要进行读取和评估:而对于require()来说,文件只处理一次(实际上,文件内容替换 了require()语句.这就意 ...

  2. POJ 3070 Fibonacci

    Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥ 2. F ...

  3. 给定时器settimeout、setInterval调用传递参数

    无论是window.setTimeout还是window.setInterval,在使用函数名作为调用句柄时都不能带参数,而在 许多场合必须要带参数,这就需要想方法解决.例如对于函数hello(_na ...

  4. java 垃圾回收

    转自:http://www.360doc.com/content/13/0305/10/15643_269388816.shtml

  5. Win7下Doxygen配置与使用

    1.  下载与安装 1.1 下载 Doxygen官方安装程序及其手册下载地址,目前使用版本为1.8.8. 安装程序:http://www.stack.nl/~dimitri/doxygen/downl ...

  6. Linux关机和重启命令

    shutdown shutdown [选项] 时间 选项: -c : 取消一个关机命令 -h : 关机 -r : 重启 [root@localhost ~]# date Tue Dec 6 21:06 ...

  7. 读《编写可维护的JavaScript》第八章总结

    第八章 避免“空比较” 我们在对传进来的参数做处理之前,肯定需要验证一下是否是我们想要的,也就是说大多数情况下,我们需要对比一下它的类型. 作者首先给了一个看起来都感觉不对的代码: var Contr ...

  8. UTF-8 ->GBK

    /** * GBK->UTF8 */ //方法一 旧方法 //NSString *encode1 = [@"%E6%88%91" stringByReplacingPerce ...

  9. Highcharts动态添加点数据

    Highcharts用来作为图表数据的展示十分方便,效果也比较好.highcharts不仅可以实现死数据的展示,也能实现动态数据的实时添加显示,类似财经股票的实时刷新效果,实现过程并不难,大致如下. ...

  10. WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED

    原文地址:http://linuxme.blog.51cto.com/1850814/375752 今天将阿里云服务器更换了一下系统盘,重启成功后,再次通过终端访问阿里云的公网IP报以下信息: @@@ ...