后端——框架——测试框架——junit——元信息
测试案例的元信息包括显示名称,标签,超时时间,顺序。
1. 显示名称
默认情况下的显示名称为方法名称。
显示名称通常有两种形式。
第一种,直接添加@DisplayName注解,value属性值为显示名称。
第二种,添加@DisplayNameGeneration, value值为生成策略,Junit有以下四种。
- Standard:默认值,
- Simple:略
- ReplaceUnderscores:使用空格替换方法名或类名中的下划线。若没有下划线,无任何效果。
- IndicativeSentences:略。
它的配置项为:junit.jupiter.displayname.generator.default。
示例:junit.jupiter.displayname.generator.default = org.junit.jupiter.api.DisplayNameGenerator$ReplaceUnderscores
2. 标签
在方法上添加@Tag注解,value值为标签值。标签可以作为过滤条件。
3. 超时时间
在方法上添加@Timeout注解,@Timeout注解,value为时间值,units为时间单位。
它的配置项为:
junit.jupiter.execution.timeout.default, 为所有的测试案例方法和生命周期方法设置默认超时时间。
junit.jupiter.execution.timeout.testable.method.default,为所有的测试案例方法设置默认超时时间。
junit.jupiter.execution.timeout.lifecycle.method.default, 为所有的生命周期方法设置默认超时时间。
junit.jupiter.execution.timeout.xxx.method.default, 为有特定类型注解的方法设置默认超时时间,例如@AfterAll注解,则xxx为afterall。
与编程语言相同,都是小范围覆盖大范围。
4. 顺序
配置测试案例运行的顺序,有两种类别,内部类和方法。
4.1 方法
通过@TestMethodOrder配置方法的运行顺序,其值为MethodOrderer接口的实现类,junit有以下五种方式:
- DisplayName:根据显示名称的字母顺序。
- MethodName:根据方法签名的字母顺序
- OrderAnnotation:根据@Order注解的值,值越小,执行越靠前。
- Random:根据随机数执行。
- Alphanumeric:与MethodName的含义相同,已被废弃。
最常使用的是OrderAnnotation。
它的配置项为:junit.jupiter.testmethod.order.default。
示例:junit.jupiter.testmethod.order.default =org.junit.jupiter.api.MethodOrderer$OrderAnnotation
4.2 内部类
与方法基本相同,区别在于适用主体为测试类的内部类,配置项为junit.jupiter.testclass.order.default,将方法配置项中的testmethod替换为了testclass。