新闻中心

JUnit的测试报告XML文件格式是什么样的

2025-12-15
浏览次数:
返回列表
JUnit测试报告XML以为根元素,包含name、tests、failures、errors、skipped、time属性,每个含name、classname、time,失败时嵌套并含message、type和堆栈。

junit的测试报告xml文件格式是什么样的

JUnit 的测试报告 XML 文件(通常由 m*en-surefire-plugingradle test 生成)遵循一套约定俗成的结构,不是 W3C 官方标准,但被主流 CI 工具(如 Jenkins、GitLab CI)广泛支持。最常见的是 TEST-*.xml 格式,根元素为 <testsuite></testsuite>

下面是一个典型、精简但合法的 JUnit 测试报告 XML 示例,并附关键说明:

<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="com.example.CalculatorTest" time="0.023" tests="3" failures="1" errors="0" skipped="0">
  <properties>
    <property name="j*a.runtime.name" value="OpenJDK Runtime Environment"/>
    <property name="j*a.version" value="17.0.1"/>
  </properties>
  <testcase name="testAdd" classname="com.example.CalculatorTest" time="0.005"/>
  <testcase name="testSubtract" classname="com.example.CalculatorTest" time="0.003"/>
  <testcase name="testDivideByZero" classname="com.example.CalculatorTest" time="0.002">
    <failure message="Expected ArithmeticException" type="org.junit.jupiter.api.AssertionFailedError">
      j*a.lang.AssertionFailedError: Expected ArithmeticException
        at com.example.CalculatorTest.testDivideByZero(CalculatorTest.j*a:24)
    </failure>
  </testcase>
</testsuite>

<testsuite></testsuite> 是顶层容器

必须包含以下属性:

  • name:测试类全限定名(如 com.example.CalculatorTest
  • tests:总用例数(含成功、失败、错误、跳过)
  • failures:断言失败(AssertionError 类型)的数量
  • errors:非断言异常(如 NullPointerExceptionRuntimeException)的数量
  • skipped:被 @Disabled 或条件跳过的数量
  • time:执行总耗时(秒,保留三位小数)

<testcase></testcase> 描述单个测试方法

每个 <testcase></testcase> 必须有:

Android的资源与国际化设置 中文WORD版 Android的资源与国际化设置 中文WORD版

本文档主要讲述的是Android的资源与国际化设置;资源是外部文件(不含代码的文件),它被代码使用并在编译时编入应用程序。Android支持不同类型的资源文件,包括XML,PNG以及JPEG文件XML文件根据描述的不同有不同格式。这份文档描述可以支持什么样的文件,语法,以及各种格式。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看

Android的资源与国际化设置 中文WORD版 0 查看详情 Android的资源与国际化设置 中文WORD版
  • name:方法名(如 testAdd
  • classname:所属测试类全限定名(与 <testsuite name></testsuite> 一致或嵌套类用 $ 分隔)
  • time:该用例耗时(秒)

若测试失败或出错,会嵌套 <failure></failure><error></error> 元素:

  • message 属性:简短失败原因(如 "Expected ArithmeticException"
  • type 属性:异常全类名(如 org.junit.jupiter.api.AssertionFailedError
  • 标签体:完整堆栈跟踪(缩进可选,但需是纯文本)

<properties></properties> 是可选元数据区

存放 JVM、系统、M*en 属性等,不参与统计,CI 工具可能用于归档或调试。

注意事项

  • JUnit 4 和 JUnit 5 生成的 XML 结构相同,差异仅在异常类型和部分属性值(如 type 值不同)
  • 一个测试类对应一个 TEST-*.xml 文件(M*en 默认命名规则:TEST-{全限定类名}.xml,斜杠转为下划线)
  • 若测试类含多个内部类,每个内部类单独生成一个 <testsuite></testsuite>(可能拆分到多个文件)
  • <system-out></system-out><system-err></system-err> 可选,用于捕获 System.out/System.err 输出,但默认不启用

基本上就这些。格式简单直接,重点是 testsuitetestcase 的属性统计必须准确,CI 才能正确解析成功率、趋势和失败详情。

以上就是JUnit的测试报告XML文件格式是什么样的的详细内容,更多请关注其它相关文章!


# 跳过  # 缙云网站建设  # 小薯条营销推广  # 沙洋推广策划网站有哪些  # 微信营销后期推广  # 名画观赏网站推广  # 做优化网站建设  # 昌平抖音seo方案  # 贵港推广团队招聘网站最新  # 银行卡营销推广  # 网络营销什么是seo呢  # 约定俗成  # 是一个  # 如何将  # java  # 转换为  # 转换成  # 文档  # 多个  # 可选  # 的是  # gitlab  # jenkins  # ai  #   # 工具  # git 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 利用5118提升短视频内容效果_5118短视频关键词优化方法  mc.js官网登录入口 mc.js官方登录入口最新版  网易大神账号申诉需要多久_网易大神账号申诉流程说明  飞书妙记怎样用语音转文字速记_飞书妙记用语音转文字速记【速记方法】  怎样把文件彻底粉碎无法恢复_Windows下安全删除敏感数据【隐私保护】  如何在复杂的电商平台中优雅地管理共享资源并确保正确重定向,使用spryker-shop/resource-share-page模块助你一臂之力  J*aScript数组对象转换:按指定键分组与值收集  MAC的“快捷指令”怎么同步到iPhone_MAC利用iCloud同步所有设备的自动化指令  星露谷物语官网入口 星露谷物语游戏官网入口  cad怎么合并重叠的线段_cad清理重复重叠线条的操作方法  J*aScript类型检查_j*ascript代码规范  Golang如何使用net/url解析URL_Golang URL解析与处理方法  J*a里如何实现订单支付与库存同步功能_支付库存同步项目开发方法说明  如何将HTML表格多行数据保存到Google Sheet  Win11截图该按哪些键 Win11截屏完整流程解析【教程】  Python中如何避免重复条件判断:利用数据结构实现动态逻辑  小红书商家版怎样在笔记嵌入商品卡路径_小红书商家版在笔记嵌入商品卡路径【挂载教程】  J*a里如何使用N*igableMap进行导航操作_可导航Map操作技巧解析  AWS EC2实例间SQL Server连接超时:安全组配置与故障排除指南  2026春节假期时间安排 2026春节假日查询  在Typer应用中优雅地处理和重组任意命令行参数  c++如何使用Meson构建系统_c++比CMake更快的构建工具  漫蛙2(台版)官方入口地址 漫蛙2(台版)正版漫画网页端  苹果手机指南针不准怎么校准 传感器校准方法详解【建议收藏】  NetBeans Ant项目:自动化将资源文件复制到dist目录的教程  Excel Power Pivot如何处理XML数据源 构建高级数据模型  Odoo 16:在表单视图中基于当前记录动态修改Tree视图属性  创客贴用户入口官网登录 创客贴网页版电脑版系统  Highcharts 雷达图径向轴标签定制指南:利用多Y轴实现数值标注  优化 Python 函数中的条件逻辑:解决 if-else 嵌套与参数选择问题  海棠电脑版入口_通过电脑访问海棠官网阅读  腾讯QQ邮箱官方网站_QQ邮箱网页版在线登录  怎样在Excel中做仪表盘_Excel仪表盘设计与关键指标展示方法  PySpark中从现有列右侧提取可变长度字符创建新列的教程  QQ邮箱网页版登录入口 QQ邮箱官方在线使用平台  PDF怎么合并PDF并保持格式_PDF合并文件保持排版教程  J*aScript实现单选按钮与关联输入框的联动禁用教程  qq游戏大厅官方下载_qq游戏免费下载安装入口  微信网页版官方入口教程 微信网页版网页版快速登录步骤  Golang如何安装Swagger工具_GoSwagger文档生成环境  Golang并发任务中错误如何聚合_Golang goroutine error收集方式  QQ邮箱官方邮箱登录入口 QQ邮箱网页版快速访问  Golang如何通过reflect获取匿名字段方法_Golang reflect匿名字段方法访问技巧  2025AO3夸克浏览器通道_AO3手机HTTPS安全入口分享  CSS Grid如何控制元素对齐_align-items与justify-items组合使用  KFC游戏互动怎么赢取优惠券_KFC线上游戏活动参与与优惠代码赢取教程  mcjs网页版流畅运行 mcjs低配电脑畅玩入口  Golang如何优化CPU绑定任务分配策略_Golang CPU任务分配优化实践  C++如何实现单例模式_C++设计模式之线程安全的单例写法  如何使用J*aScript精确选择并批量修改特定父元素下子链接的样式 

搜索