写点什么

软件测试学习笔记丨 JUnit5 标记测试用例

作者:测试人
  • 2024-06-25
    北京
  • 本文字数:1361 字

    阅读完需:约 4 分钟

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/28029

使用场景

  • 通过 Tag 对用例分组:

  • 环境分组:

  • 测试环境、预发布环境

  • 阶段分组:

  • 冒烟用例

  • 版本分组:

  • V1.1、V1.2

Tag 标记用例

  • 设置标签

  • 根据标签执行

  • 结合 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”

执行不含 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 的地方比较多,代码会显得比较冗余

  • 解决方案: 直接使用自定义的标签做注解

如何自定义标签

  1. 自定义标签

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 {}
复制代码
  1. 使用自定义标签

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("无自定义标签"); }}
复制代码

软件测试开发免费视频教程分享


发布于: 刚刚阅读数: 4
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试学习笔记丨JUnit5标记测试用例_软件测试_测试人_InfoQ写作社区