用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/gaorun/my-labs --skill test命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | test |
| description | my-labs 仓库测试指南。当用户说"跑测试"、"写单测"、"加测试"、"测试挂了"、 "覆盖率"、"测试怎么跑"、"debug 测试"时触发。 涵盖 monorepo 中各组件的测试策略、框架选择、调试方法。 |
pnpm test # 所有包(Turborepo 编排)
pnpm --filter @gaorun/my-cli test # 仅 CLI 包
Turborepo 的
test任务依赖^build,构建过的包有缓存时会跳过构建直接跑测试。
| 组件类型 | 策略 | 原因 |
|---|---|---|
| 纯 Skill | 不写代码测试 | Skill 是 Markdown 文档,通过人工审查 |
| CLI 命令 | node:test(Node 内置) | 零依赖、原生 ESM、与 oclif 兼容 |
| Extension | 跟随平台惯例 | VS Code 用 @vscode/test-electron |
在 packages/cli/package.json 中添加:
{
"scripts": {
"test": "node --test --loader ts-node/esm src/**/*.test.ts"
},
"devDependencies": {
"ts-node": "^10.9.0"
}
}
--loader ts-node/esm让 Node 直接执行.ts测试文件,无需预编译。
// packages/cli/src/commands/install.test.ts
import { describe, it } from "node:test";
import assert from "node:assert";
describe("install command", () => {
it("应导出 run 方法", async () => {
const { default: Install } = await import("./install.js");
const cmd = new Install([], {} as any);
assert.ok(typeof cmd.run === "function");
});
});
run 方法static args/flags 定义正确node bin/run.js <cmd> 子进程执行按优先级排查:
pnpm build(Turborepo 缓存可能过期,先 clean 再 build)node -v 确认pnpm build 是否通过?构建失败则测试无法运行pnpm clean && pnpm install && pnpm build && pnpm testcd packages/cli
node --test --loader ts-node/esm src/commands/install.test.ts
# .github/workflows/test.yml
name: Test
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with: { node-version: 20, cache: "pnpm" }
- run: pnpm install
- run: pnpm build
- run: pnpm test
纯 Skill 不需要代码测试,但创建后应检查:
name 和 description 字段存在name 字段值description 中的触发词与 Skill 内容匹配