| name | gen-test |
| description | 生成符合项目约定的 static test 文件 — 无框架、node:assert/strict、standalone Node 执行 |
Gen Test Skill
为 Carbon Shade 项目生成符合严格约定的静态测试文件。
使用方式
/gen-test <模块名或功能描述> — 例如 /gen-test hit-shape 或 /gen-test 测试新的 GoreCross action
项目测试约定(必须严格遵守)
文件位置和命名
- 路径:
tests/static/<name>.test.ts
- 命名: kebab-case,描述被测功能
Import 规则
import { assert } from "./test-utils.js";
import { SomeModule } from "../../src/combat/some/Module.js";
import assert from "node:assert/strict";
import { SomeModule } from "../../src/combat/some/Module";
import fs from "node:fs";
断言 API(只有这三个)
assert.ok(value);
assert.equal(actual, expected);
assert.deepEqual(actual, expected);
禁止使用: assert.fail()、assert.throws()、assert.notEqual() 等。
需要断言失败时用 throw new Error("message")。
需要断言抛出时用 try/catch:
let threw = false;
try { dangerousCall(); } catch { threw = true; }
assert.ok(threw);
测试结构
{
const actor = createActor(...);
assert.equal(result, expected);
}
{
}
不使用 describe/it/test 函数 — 这不是 Jest/Mocha。
FrameDataAction 特殊处理
const raw = action as unknown as Record<string, unknown>;
运行方式
测试文件被编译到 .tmp/test-js/ 后作为独立 Node 进程执行。
退出码 0 = 通过,非 0 = 失败。
生成模板
import { assert } from "./test-utils.js";
{
}
{
}
生成后验证
npm run typecheck && npm run static:test
确认新测试出现在结果中且通过。