项目 03 · 测试 · 演化 · 发布
把你前两个项目做的 Skill 系统化:30+ 测试用例、自动化 CI、能继续演化而不破坏现有功能。
怎么算"成"?
每次改动,CI 自动跑测试。一年后回来,你还能用、还敢改。
步骤 1 · 写 30+ 测试用例
覆盖:(1) 正常情况;(2) 边界(空输入、超长输入);(3) 异常(错误格式、不在领域内);(4) 回归(曾经出过的 bug)。
// tests/skill.test.ts
import { describe, it, expect } from 'vitest';
import { ask } from '../src/skill';
describe('领域专家', () => {
it('能回答标准问题', async () => {
const ans = await ask('什么是 RAG?');
expect(ans).toContain('检索');
});
it('对不在领域的问题礼貌拒绝', async () => {
const ans = await ask('今晚吃什么?');
expect(ans).toMatch(/不擅长|超出/);
});
// ...28 个更多
});
步骤 2 · 配 GitHub Actions
# .github/workflows/test.yml
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: '20' }
- run: npm ci
- run: npm test
步骤 3 · 演化策略
- 每次改动:先写测试 → 再改代码
- 语义化版本:v1.2.3(重大 / 功能 / 修补)
- CHANGELOG.md:每个版本写清楚改了什么
- PR 模板:每个改动都有"对哪些 Skill 有影响"的 checkbox
步骤 4 · 发布
把代码放到 GitHub 公开仓库。写 README,包含安装、使用、贡献指南。让别人能 clone 下来跑你的项目。