JUnit的测试报告XML文件格式是什么样的
JUnit测试报告XML以为根元素,包含name、tests、failures、errors、skipped、time属性,每个含name、classname、time,失败时嵌套并含message、type和堆栈。

JUnit 的测试报告 XML 文件(通常由 m*en-surefire-plugin 或 gradle 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:
非断言异常(如 NullPointerException、RuntimeException)的数量 -
skipped:被@Disabled或条件跳过的数量 -
time:执行总耗时(秒,保留三位小数)
<testcase></testcase> 描述单个测试方法
每个 <testcase></testcase> 必须有:
Android的资源与国际化设置 中文WORD版
本文档主要讲述的是Android的资源与国际化设置;资源是外部文件(不含代码的文件),它被代码使用并在编译时编入应用程序。Android支持不同类型的资源文件,包括XML,PNG以及JPEG文件XML文件根据描述的不同有不同格式。这份文档描述可以支持什么样的文件,语法,以及各种格式。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
0
查看详情
-
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输出,但默认不启用
基本上就这些。格式简单直接,重点是 testsuite 和 testcase 的属性统计必须准确,CI 才能正确解析成功率、趋势和失败详情。
以上就是JUnit的测试报告XML文件格式是什么样的的详细内容,更多请关注其它相关文章!

非断言异常(如