后端——框架——测试框架——junit——元信息


  测试案例的元信息包括显示名称,标签,超时时间,顺序。

1.   显示名称

  默认情况下的显示名称为方法名称。

显示名称通常有两种形式。

第一种,直接添加@DisplayName注解,value属性值为显示名称。

第二种,添加@DisplayNameGeneration, value值为生成策略,Junit有以下四种。

    1. Standard:默认值,
    2. Simple:略
    3. ReplaceUnderscores:使用空格替换方法名或类名中的下划线。若没有下划线,无任何效果。
    4. 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有以下五种方式:

  1. DisplayName:根据显示名称的字母顺序。
  2. MethodName:根据方法签名的字母顺序
  3. OrderAnnotation:根据@Order注解的值,值越小,执行越靠前。
  4. Random:根据随机数执行。
  5. 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。

相关