Driver Test Suite Runner 是一个用于有条理地执行 RivetKit 驱动测试套件的技能。它按测试文件逐个运行,覆盖 native(NAPI)与 wasm 两种运行时,并在 ~/.agents/notes/driver-test-progress.md 中记录进度。
用途与主要能力 该技能面向 RivetKit 驱动测试的批量验证场景。它不会一次性运行全部测试,而是按文件组顺序推进,每个文件在选定的运行时上执行测试,并在进度文件中用复选框分别标记 native 和 wasm 的结果。默认配置下,每个测试文件会运行两次:一次 native/local,一次 wasm/remote,编码均为 bare。只有两个运行时都通过,该文件才算完成,随后才进入下一个文件。技能支持通过参数控制行为,包括 reset(清空进度从头开始)、resume(默认,从上次中断处继续)、only <file>(只运行指定文件组)、from <file>(从指定文件组开始)、runtime <native|wasm|both>(选择运行时,默认 both)、encoding <bare|cbor|json>(覆盖编码)、registry <static>(覆盖注册表类型)。
使用方式 使用前需确保运行时产物已构建:NAPI 需存在 .node 文件,缺失或 Rust 改动后应使用 pnpm --filter @rivetkit/rivetkit-napi run build:force 重新构建;wasm 需存在 pkg/rivetkit_wasm.wasm,缺失时使用 pnpm --filter @rivetkit/rivetkit-wasm run build 构建。随后检查引擎是否运行:curl -sf http://127.0.0.1:6420/health,未运行则通过 ./scripts/run/engine-rocksdb.sh 启动并等待健康检查通过。接着初始化或读取进度文件,按文件顺序执行测试。每个矩阵单元通过 Vitest 的 -t 参数选择,命令示例为:cd rivetkit-typescript/packages/rivetkit && pnpm test tests/driver/<FILE>.test.ts -t "runtime (native) / sqlite (local) / encoding (bare)" > /tmp/driver-test-current.log 2>&1。测试输出始终写入文件,再用 grep 分析结果。若失败,技能要求不跳过当前文件,而是通过追加测试名文本缩小范围定位首个失败测试,并记录失败信息、报告给用户。
适用场景 适合需要系统化验证 RivetKit 驱动在 native 和 wasm 运行时下行为一致性的开发或测试流程,尤其适合调试跨运行时差异、跟踪逐文件测试进度,以及避免一次性运行全量套件带来的噪声和资源消耗。
限制与注意事项 测试矩阵不能通过环境变量选择,必须使用 -t 指定完整内层 describe 名称。wasm 不能与本地 SQLite 搭配,必须使用 remote。快速测试超时建议 120 秒,慢速测试(sleep、lifecycle、stress)建议 600 秒;wasm 可能更慢,需按比例延长。不要使用 -t 作为规避 flaky 测试的手段。若仅一个运行时失败,应重点检查对应的运行时适配器或特性门控代码。具体可用的测试文件列表及套件描述以资料中的进度模板为准。