junit4 组合测试

有时,我们可能需要将几个测试类组合在一起执行,或将几个测试类的某几个测试方法组合在一起执行。当然在实际的应用中还是用的比较少,我们可以很方便的使用maven来跑测试用例;这里纯属技术探讨。

测试类ATest.java

import org.junit.Test;
import org.junit.experimental.categories.Category;

public class ATest {

	@Test
	@Category(FastTest.class) // @Category 放在测试方法上
	public void atest1() {
		System.out.println("atest1");
	}

	@Test
	@Category(SlowTest.class)
	public void atest2() {
		System.out.println("atest2");
	}
}

测试类BTest.java

// @Category 放在测试类上
@Category(FastTest.class)
public class BTest {

	@Test
	public void btest1() {
		System.out.println("btest1");
	}

	@Test
	public void btest2() {
		System.out.println("btest2");
	}

	@Test
	@Category(SlowTest.class)
	public void btest3() {
		System.out.println("btest3");
	}
}

两个用于Categories标记分组作用的接口,当然也可以是类,这些接口仅仅用于标记分组:FastTest.java、SlowTest.java

public interface FastTest {

}
public interface SlowTest {

}

以上是准备工作:

1、Suite组合测试类。

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(Suite.class)
// 这里将按顺序执行,A测试类先执行,B测试类后执行。当然测试类中方法的执行是无序的。
@SuiteClasses({ ATest.class, BTest.class })
public class SuiteTests {

}

执行SuiteTests将运行A、B的5个测试方法。输出如下:

atest1
atest2
btest1
btest2
btest3

2、Categories组合测试类或测试方法。

import org.junit.experimental.categories.Categories;
import org.junit.experimental.categories.Categories.IncludeCategory;
import org.junit.runner.RunWith;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(Categories.class)
@IncludeCategory(FastTest.class)
@SuiteClasses({ ATest.class, BTest.class })
public class Categories1Tests {

}

以上的代码将会执行@Category(FastTest.class)标记的类或测试方法,所以会执行ATest的测试方法atest1(),以及BTest的所有测试方法。输出如下:

atest1
btest1
btest2
btest3

还可以使用@ExcludeCategory排除某些标记方法,代码如下

import org.junit.experimental.categories.Categories;
import org.junit.experimental.categories.Categories.ExcludeCategory;
import org.junit.experimental.categories.Categories.IncludeCategory;
import org.junit.runner.RunWith;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(Categories.class)
@IncludeCategory(FastTest.class)
@ExcludeCategory(SlowTest.class)
@SuiteClasses({ ATest.class, BTest.class })
public class Categories2Tests {

}

这样BTest中的btest3()测试方法将会排除掉,执行结果如下:

atest1
btest1
btest2
时间: 2024-08-11 02:07:45

junit4 组合测试的相关文章

某互联网后台自动化组合测试框架RF+Sikuli+Python脚本

某互联网后台自动化组合测试框架RF+Sikuli+Python脚本 http://www.jianshu.com/p/b3e204c8651a 字数949 阅读323 评论1 喜欢0 一.**RobotFramework 1.**工具介绍:Robotframework在测试中作为组织测试用例和BDD关键字的平台,主要使用RIDE进行管理,它不是一个工具,而仅仅是一个框架,使用Python进行开发,同时支持WEB测试(Selenium).Java GUI 测试,启动线程.终端.SSH等.支持BDD

Junit 4 Tutorials(Junit 4 教程) 四、Junit4 参数化测试

Junit 4 参数化测试 允许通过变化范围的参数值来测试方法.参数擦测试可以通过以下简单的步骤实现: 对测试类添加注解 @RunWith(Parameterized.class) 将需要使用变化范围参数值测试的参数定义为私有变量 使用上一步骤声明的私有变量作为入参,创建构造函数 .创建一个使用@Parameters注解的公共静态方法,它将需要测试的各种变量值通过集合的形式返回. 使用定义的私有变量定义测试方法 Junit 4 参数化测试样例 EvenNumberChecker.java 校验输

软件测试(二)PICT的使用 组合测试方法(两两组合测试,可遍历组合测试)

一.两两组合测试 # # 两两组合测试 # PLATFORH: x86, ia64, amd64 CPUS: Single, Dual, QUad PAHL: 120MB, 1GB, 4GB, 64GB HDD: SCSI, IDE OS: NT4, Win2k, Winxp, Win2k3 IE: 4.0, 5.0, 5.5, 6.0 (如图输入) 得到结果(两两组合的结果): PLATFORH CPUS PAHL HDD OS IE amd64 Single 4GB SCSI Win2k 4

linux下Bash编程组合测试及编写脚本(五)

linux下Bash编程组合测试及编写综合脚本(五) 1.Bash编程组合测试条件 -a: 与关系 -o: 或关系 !: 非关系 表示方法1:[ $# -gt 100 -a $# -le 500 ] 表示方法2:[ $# -gt 100 ] && [ $# -le 500 ] 2.编写一个任意添加与删除用户的脚本,要求如下: 2.1:如果脚本选项是--add:,将添加用户; 如果选项是--del,将删除用户,如果是--help显示帮助信息 2.2:脚本选项后面的参数可任意指定多个用户并且用

具有约束关系的因素如何实施组合测试

关键词:组合测试,因素具有约束关系,PICT实施组合测试 PICT的全称是Pairwise Independent Combinatorial Testing tool 本文总结了我在组合测试实践中获得的一些经验,组合测试百度一下有各种博文介绍,不过其中的例子大多是比较简单易懂的,我这里遇到的问题稍稍复杂了一些,因素之间具有约束关系,这里使用微软的工具PICT详细介绍如何定义约束关系生成有效的测试用例集. 假设场景如下: Cleaning Y N Enable Analyze Y N Norma

Linux-条件组合测试

if [ $1 == '-add' ] ;then for i in `echo $2 | sed 's/,/ /g'`;do if  id $i &> /dev/null;then echo "user exists." else useradd $i echo $i | passwd --stdin $i &> /dev/null echo "useradd...$i" fi done elif [ $1 == '-del' ];th

Junit4 IDEA测试学习一

1.Junit4 下载 https://github.com/junit-team/junit4/releases 2.IDEA Test的创建 创建一个和src同级别的文件夹叫test(逻辑代码放src里,测试代码放test里是个好习惯). 接着在IntelliJ IDEA里还要把这个test文件夹要设置成测试文件的根目录,右键选中 Mark Directory As - Test Sources Root. 3.intellij idea 自动生成test单元测试 在要测试的类上按快捷键ct

脚本之条件组合测试

#!/bin/bash # if [ $# -lt 1 ];then         echo "Aadminuser ARG ..."         exit 8 fi if [ $1 == "add" ];then    for I in {1..10};do        if id user$I &> /dev/null; then           echo " user user$I exist"         e

FasterRCNN_KERAS多种环境配置组合测试

FasterRCNN是物体检测主流方法之一,keras版本的FasterRCNN是在2017年6月发布的,这是核心代码.其后Anaconda.TensorFlow和Keras都在不断更新,不同版本的组合可能无法运行该程序.去年和今年小象学院推出了计算机视觉深度学习的两期课程,这两期课程的物体检测部分的示例都采用了该代码,他们内容相同,如下图.也可以点击这里查看.由于最新版的TensorFlow和Keras变动比较大,许多老的函数有位置变动或被删除,可能导致无法运行该代码.我尝试了自己的几种环境,