Junit5测试顺序和重复测试

Junit5测试顺序

环境 java15+maven3.8+idea2022.2

  • 学习 junit5用例的执行书序
  • 学习 junit5 用例的重复执行

测试顺序:

下面是如何指定测试用例的方法执行顺序:

  1. 测试用例的执行顺序可以使用注解OrderAnnotation来修饰类,并使用@Order来修饰方法指定顺序
    @TestMethodOrder(OrderAnnotation.class)
@TestMethodOrder(OrderAnnotation.class)//该注解使用在类上面
class Demotest{
	@Test
	@Order(1)//该注解使用在方法上
	void test{
		System.out.Println("1")
	}
	@Test
	@Order(2)
	void test2{
		System.out.Println("2")
	}
}
  1. 使用@DisplayName ,根据displayname的AscII码排序
@@TestMethodOrder(MethodOrderer.Display.class)
class Demotest{
	@Test
	@DisplayName("1")
	void test{
		System.out.Println("1")
	}
	@Test
	@DisplayName("2")
	void test2{
		System.out.Println("2")
	}
}
  1. 使用@Random 随机排序,@TestMethodOrder(MethodOrderer.Random.class)
@TestMethodOrder(MethodOrderer.Random.class)//该注解使用在类上面
class Demotest{
	@Test
	void test{
		System.out.Println("1")
	}
	@Test
	void test2{
		System.out.Println("2")
	}
}
  1. 使用@MethodName ,根据方法的名称排序使用注解@TestMethodOrder(MethodOrderer.MethodName.class)
@TestMethodOrder(MethodOrderer.MethodName.class)//该注解使用在类上面
class Demotest{
	@Test
	void test{
		System.out.Println("1")
	}
	@Test
	void test2{
		System.out.Println("2")
	}
}

方法可以指定执行顺序,类也是可以的:

  1. 与方法执行的排序类似也是 根据order注解排序,区别的是,方法使用的TestMethodOrder,类的排序使用TestClassOrder
@TestClassOrder(ClassOrderer.Annotation.class)
public class Demotest{
	@Nested
	@Order(1)
	class OderTest1{
		@Test
		void test{
			System.out.Println("1")
		}
	}
	@Nested
	@Order(2)
	class OrderTest2{
		@Test
		void test2{
			System.out.Println("2")
		}
	}
	
}
  1. DisplayName排序
@TestClassOrder(ClassOrderer.DisplayName.class)
public class Demotest{
	@Nested
	@DisplayName("1")
	class OderTest1{
		@Test
		void test{
			System.out.Println("1")
		}
	}
	@Nested
	@DisplayName("2")
	class OrderTest2{
		@Test
		void test2{
			System.out.Println("2")
		}
	}
}
  1. 随机排序
@TestClassOrder(ClassOrderer.Random.class)
public class Demotest{
	@Nested
	class OderTest1{
		@Test
		void test{
			System.out.Println("1")
		}
	}
	@Nested
	class OrderTest2{
		@Test
		void test2{
			System.out.Println("2")
		}
	}
}
  1. 使用类名排序
@TestClassOrder(ClassOrderer.ClassName.class)
public class Demotest{
	@Nested
	class OderTest1{
		@Test
		void test{
			System.out.Println("1")
		}
	}
	@Nested
	class OrderTest2{
		@Test
		void test2{
			System.out.Println("2")
		}
	}
}

使用配置文件排序,由于在每一个方法或者类上加注解其实是很麻烦的,也容易出错,因此可以使用配置文件的方式:
在resources目录下,创建 junit-platform.properties配置文件,在配置文件中写入下面的内容,这些是默认执行顺序,优先级低于在代码中写注解的形式,如果在代码中使用注解指定了执行顺序,则按照代码中指定的顺序
在这里插入图片描述

重复测试:

这里学习 如何使测试用例 重复执行

使用注解@RepeatedTest()来声明这个方法的执行次数,并且需要注意,如果该注解和@Test一起使用会比预定执行次数多执行一次

public void DemoTest{
	//@Test
	@RepeatedTest(3)//表示这个方法将被执行3次
	void test1(){
		System.out.Println("test")
	}
}

输出结果的是:repetition 当前执行次数(currentRepetition) of 总次数(totalRepetitions)
在这里插入图片描述

@RepeatedTest的注解,还可以指定对应测测试用例的名称,也就是自定义输出结果的名称,格式:

@RepeatedTest(value = 3,name= "{disiplayName}{currentRepetition}/{totalRepetitions})
public void DemoTest{
	//@Test
	@RepeatedTest(value = 3,name= "repetition111 {currentRepetition}/{totalRepetitions}")
	void test1(){
		System.out.Println("test")
	}
}

输出结果:可以看到这个输出的名称变成上面自定义的了
在这里插入图片描述

这个displayName的样式还有多种,具体如下,可以指定输出的名称为 方法名等
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值