dsh-test-normalizer: 统一测试结果格式的 DSH 插件

前言

在 DSH 的插件体系中,测试结果的解析依赖于具体的 Runner。pytest、Vitest、Jest 和 Cargo 等工具输出的摘要格式各异,直接处理这些异构数据会增加上层逻辑的复杂度。dsh-test-normalizer 插件旨在将上述框架的测试结果统一为稳定的结构,以便于后续的编排与分析。

插件定位

这是一个面向 DSH 的结构化测试结果归一化插件。它负责将 pytest、Vitest、Jest 和 Cargo 的测试摘要解析为统一的内部格式。该插件属于 MIT 协议开源项目,由用户 MkaliezZ 维护。

核心功能

  1. 多框架解析:支持解析 pytest、Vitest、Jest 和 Cargo 的测试摘要,将其转换为稳定的输出形状。
  2. 运行器适配:DSH 适配器(Adapter)接受宿主提供的 Runner,插件本身不通过自身逻辑绕过 DSH 的执行策略。

安装与启用

该插件以 npm 包形式发布,包名为 @mkaliezz/dsh-test-runner。安装后需在 DSH 配置中指定其 bundle patch 文件以完成集成。

在 package.json 中定义了插件的入口文件为 lib/src/plugin.js,类型为 ES Module。DSH 配置中需包含 bundle patch 指令,指向 cordis.patch.yml 文件:

"dsh": {
    "bundle": {
        "patch": "./cordis.patch.yml"
    }
}

典型用法

当前文档未提供具体的命令行调用示例。根据功能描述,该插件作为 DSH 体系的一部分,通过宿主提供的 Runner 运行,并将不同框架的测试摘要转换为统一结构。实际使用时需参考 DSH 的运行器配置与宿主 Runner 的对接方式。

适用场景与注意

  1. 环境要求:插件依赖 Node.js 环境,且要求版本不低于 20。
  2. 权限与策略:插件通过 DSH 的 bundle patch 机制集成,本身不执行绕过 DSH 执行策略的操作,需依赖宿主 Runner 的配置。
  3. 代码审查:在使用前应检查源码与许可证(MIT),确认其符合项目安全要求。

总结

dsh-test-normalizer 解决了在 DSH 环境下处理多种测试框架输出不一致的问题。通过引入 @mkaliezz/dsh-test-runner 并配置 cordis.patch.yml,可以将 pytest、Vitest、Jest 和 Cargo 的结果归一化。这是一个轻量级的插件,适合需要在单一 Harness 流程中集成多种测试工具的场景。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜