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

畫卷琴夢
发布: 2025-12-15 17:03:07
原创
210人浏览过
JUnit测试报告XML以为根元素,包含name、tests、failures、errors、skipped、time属性,每个含name、classname、time,失败时嵌套并含message、type和堆栈。

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

JUnit 的测试报告 XML 文件(通常由 maven-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="java.runtime.name" value="OpenJDK Runtime Environment"/>
    <property name="java.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">
      java.lang.AssertionFailedError: Expected ArithmeticException
        at com.example.CalculatorTest.testDivideByZero(CalculatorTest.java: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、系统、Maven 属性等,不参与统计,CI 工具可能用于归档或调试。

注意事项

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

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

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

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号