博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
junit4 组合测试
阅读量:5892 次
发布时间:2019-06-19

本文共 2188 字,大约阅读时间需要 7 分钟。

hot3.png

  有时,我们可能需要将几个测试类组合在一起执行,或将几个测试类的某几个测试方法组合在一起执行。当然在实际的应用中还是用的比较少,我们可以很方便的使用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个测试方法。输出如下:

atest1atest2btest1btest2btest3

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的所有测试方法。输出如下:

atest1btest1btest2btest3

还可以使用@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()测试方法将会排除掉,执行结果如下:

atest1btest1btest2

转载于:https://my.oschina.net/u/2007041/blog/508480

你可能感兴趣的文章
【232】◀▶ IDL显示地理图像
查看>>
学习进度表 04
查看>>
谈谈javascript中的prototype与继承
查看>>
时序约束优先级_Vivado工程经验与各种时序约束技巧分享
查看>>
nginx win 启动关闭_windows下nginx启动与关闭的批处理脚本
查看>>
minio 并发数_MinIO 参数解析与限制
查看>>
eap wifi 证书_用openssl为EAP-TLS生成证书(CA证书,服务器证书,用户证书)
查看>>
mysql 应用程序是哪个文件夹_Mysql 数据库文件存储在哪个目录?
查看>>
mysql半同步和无损复制_MySQL半同步复制你可能没有注意的点
查看>>
mysql能看见表显示表不存在_遇到mysql数据表不存在的问题
查看>>
使用mysql实现宿舍管理_JSP+Struts2+JDBC+Mysql实现的校园宿舍管理系统
查看>>
mysql alter 修改字段类型_MySQL ALTER命令:删除,添加或修改表字段、修改字段类型及名称等...
查看>>
mysql中的事务和锁_MySQL - 事务和锁中的互斥?
查看>>
mysql statement讲解_Statement接口详解
查看>>
mysql_print_default_知识点:MySQL常用工具介绍(十 二)——实用程序my_print_defaults、perror...
查看>>
mysql怎么会报错_MySQL启动报错怎么办?
查看>>
python编译exe用于别的电脑上_Python安装教程(推荐一款不错的Python编辑器)
查看>>
flash back mysql_mysqlbinlog flashback 使用最佳实践
查看>>
hive中如何把13位转化为时间_sqoop1 导入 hive parquet 表中 时间戳调整为日期
查看>>
mysql书外键_[转] mysql 外键(Foreign Key)的详解和实例
查看>>