本文转自测试人社区,原文链接:jck28-lucio-junit5标记测试用例 - 学习笔记 - 测试人社区
使用场景通过 Tag 对用例分组: 环境分组: 测试环境、预发布环境 阶段分组: 冒烟用例 版本分组: V1.1、V1.2Tag 标记用例设置标签根据标签执行 结合 Maven 执行 结合测试套件执行设置标签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("开发+测试环境"); }}
Maven 结合 tag 构建-修改 pom 文件groups 表示执行包含标签或者标签表达式的用例。excludedGroups 表示不执行包含该标签或者标签表达式的用例。使用命令 mvn clean test 执行用例。
org.apache.maven.plugins maven-surefire-plugin 2.22.2 test dev
Maven 结合 tag 构建-使用命令行构建注意: 如果使用命令行的同时也配置了 pom 文件, pom 的配置优先级更高执行 test 标签的用例mvn clean test -Dgroups=“test”

mvn clean test -DexcludedGroups=“test”
Tags 的命名规范不准为空。标签不得包含空格。标签不得包含 ISO 控制字符。标签不得包含以下任何保留字符 , (、) & | !Tag 表达式<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <!-- & 在xml 中表示 & 与的关系 --> <groups>test&dev</groups> <!-- 不要执行的标签 --> <!--<excludedGroups>主流程方法</excludedGroups>--> </configuration> <version>2.22.2</version> </plugin>
Tag 表达式结合命令行执行 没有test 标签的用例
mvn clean test -Dgroups=“!test”
执行 dev 或 test 标签的用例mvn clean test -Dgroups=“dev|test”
执行既有 dev 也有 test 标签的用例mvn clean test -Dgroups=“dev&test”
自定义标签问题: 注解比较啰嗦,如果需要设置 Tag 的地方比较多,代码会显得比较冗余解决方案: 直接使用自定义的标签做注解如何自定义标签自定义标签import org.junit.jupiter.api.Tag;import org.junit.jupiter.api.Test;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;//定义标签@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Tag("Preprod")@Testpublic @interface PreprodTest {}
使用自定义标签
package com.hogwarts.JUnit5;import org.junit.jupiter.api.Tag;import org.junit.jupiter.api.Test;//设置自定义Tag后使用mvn clean test 执行class TagExampleTest { @CustomTagTest void testCustomTag() { System.out.println("自定义的标签"); } void testCustomTag2() { System.out.println("无自定义标签"); }}
软件测试开发免费视频教程分享 - 公众号 - 测试人社区