一.插件概述
1.插件名称
TestNG 单测插件
2.核心价值
该插件用于在流水线中自动化执行 TestNG 测试用例并生成详细测试报告,支持跨操作系统环境运行,通过 Maven 命令运行测试用例,自动解析 Surefire 格式的测试报告,提取关键测试指标(如测试总数、失败数、执行时间等)。
3.适应版本
适配 DevOps 平台6.0及以上稳定版本
二.核心使用场景
该插件主要适用于 Java 项目的自动化测试场景,可集成到持续集成流程中实现测试结果的自动分析与反馈,具体场景包括:
-
Java 项目持续集成测试:在代码编译完成后自动触发 TestNG 测试,快速反馈代码质量问题
-
多环境测试一致性校验:跨 Windows、Linux 等操作系统运行测试用例,确保测试结果不受环境影响
-
测试结果可视化呈现:自动提取测试指标并输出,便于流水线后续步骤(如邮件通知、报告归档)调用
-
失败用例精准定位:解析失败用例的堆栈轨迹与错误行号,降低问题排查成本
三.详细使用手册
1.前提条件
-
已在 DevOps 平台6.0及以上版本中安装 “TestNG 单测” 插件;
-
流水线工作空间已配置 Maven 环境(支持执行 `mvn` 命令);
-
项目已集成 TestNG 依赖与 Surefire 插件,确保可通过 Maven 命令生成标准 XML 测试报告。
2.测试执行与结果处理流程
-
步骤1:执行测试命令
在流水线工作空间中运行命令:`mvn clean test -Dmaven.test.failure.ignore=true`,其中 `-Dmaven.test.failure.ignore=true` 表示忽略测试失败,确保命令执行完成后继续后续报告解析步骤。
-
步骤2:测试报告校验
检查工作空间下的 `target/surefire-reports` 目录是否存在:若不存在,判定为测试失败,输出错误信息“target 下的 surefire-reports 目录不存在”;若存在,进入报告解析环节。
-
步骤3:测试报告解析
- 扫描 `target/surefire-reports` 目录下的 XML 测试报告文件,自动排除 `testng-failed.xml` 等辅助文件;
- 使用 `TestSuiteXmlParser` 工具解析 XML 报告,提取测试套件、测试用例名称、执行状态(成功/失败/跳过)等信息;
- 按包名对测试套件进行分组统计,便于按业务模块查看测试结果;
- 收集失败测试用例的详细信息,包括错误消息、堆栈轨迹、错误行号等。
-
步骤4:结果输出与状态判定
(1)输出指标
计算并输出以下核心测试指标至插件输出参数:
- `totalTests`:测试总数
- `totalErrors`:测试错误数量
- `totalFailures`:测试失败数量
- `totalSkipped`:测试跳过数量
- `totalElapsedTime`:测试总执行时间
- `totalPercentage`:测试成功率
(2)状态判定
- 成功:测试执行完成 + 报告解析成功;
- 失败:报告目录不存在 / 报告解析抛出异常 / 命令执行返回非预期错误代码(注:测试用例失败不会导致插件状态失败,因命令已配置忽略测试失败)。
|