Fuchsia 测试输出格式

本文档介绍了用于收集和存储结果的目录格式 和在 Fuchsia 上运行的测试的输出。目前由 已指定 --output-directory 选项时,系统会为 ffx 测试运行

背景

单次执行 ffx test 会生成一次“测试运行”测试运行是 由任意数量的套件运行组成,每个套件运行均包含 任意数量的测试用例

“套件运行”是指测试组件的执行。测试组件 通常由网址标识,例如 fuchsia-pkg://fuchsia.com/run_test_suite_integration_tests#meta/passing-test-example.cm

测试用例是套件中包含的单个测试用例的执行。

此外,测试运行、套件或测试用例可能会产生工件。这些 包含测试的输出,例如 stdout、stderr 和 syslog。制品 可以是文件或目录。

概览

测试输出会存储为目录。该目录包含的是针对 单个测试运行及其包含的任何套件运行和测试用例。 目录中包含一个名为 run_summary.json 的 JSON 文件以及任意数量的 目录。每个子目录都包含测试的工件 或单个套件运行或测试用例。

目录布局

JSON 文件始终称为 run_summary.json,且始终位于 目录的根目录下。run_summary.json 包含完整的 测试运行结果、测试运行中的套件运行结果,以及 每个套件中运行的案例。它还包含每个工件的名称 以及其中的工件列表工件始终位于 工件子目录的顶层

不可使用 指定为架构的一部分。而是指定子目录的实际名称 run_summary.json 中列出了

run_summary.json 项内容

run_summary.json”的确切架构发布日期 fuchsia.dev.在 Fuchsia 源中,它位于 //sdk/schema 目录下。

工件

工件可以由单个文件或目录组成。以下 如今已经存在,而且这个架构是众所周知的。

类型 说明
系统日志 从测试套件中运行的所有组件收集的 Syslog。
RESTRICTED_LOG 导致测试失败的任何高严重级别日志。
STDOUT 从测试中的单个组件收集的 stdout。
STDERR stderr,即从测试中的单个组件收集的 stderr。
报告 ffx 测试生成的 stdout 输出的副本。
CUSTOM 测试中的组件生成的一组任意文件。

解析

需要处理测试结果的工具应首先解析 run_summary.json,因为它是输出目录中唯一带有 架构中定义的位置该目录的剩余内容是 如run_summary.json所述。工具不应假定有任何特定的命名 输出中工件或子目录的命名惯例。

示例

此示例输出是通过针对ffx test 示例测试

$ ffx test run --output-directory /tmp/ffx-out fuchsia-pkg://fuchsia.com/stdout-test#meta/stdout-test.cm

ffx test 生成的 /tmp/ffx-out 目录的内容如下: examples/testing 中提供。

RFC-0163:提议此输出的 RFC。