ceshiren.com
霍格沃兹测试学社
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
public class TagExampleTest {
@Tag("preprod")
@Test
void hogwarts(){
System.out.println("预生产环境");
}
@Tag("test")
@Test
void hogwarts2(){
System.out.println("测试环境");
}
@Tag("dev")
@Test
void hogwarts3(){
System.out.println("开发环境");
}
@Tag("dev")
@Tag("test")
@Test
void hogwarts4(){
System.out.println("开发+测试环境");
}
}
groups
表示执行包含标签或者标签表达式的用例。excludedGroups
表示不执行包含该标签或者标签表达式的用例。mvn clean test
执行用例。,
(
、)
&
|
!
Tag 表达式 | 含义 | 示例 |
---|---|---|
& |
表示 与 关系 | test1&test2 表示执行既包含test1又包含test2的标签 |
! |
表示 非 关系 | !test 表示执行没有test1标签的用例 |
| |
表示 或 关系 | test1|test2 表示执行包含test1或包含test2的标签 |
问题: 注解比较啰嗦,如果需要设置 Tag 的地方比较多,代码会显得比较冗余
解决方案: 直接使用自定义的标签做注解
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
//定义标签
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Tag("Preprod")
@Test
public @interface PreprodTest {
}
mvn clean test
执行