|
| 1 | +# Autotest(差异驱动单元测试生成)Solo 使用说明 |
| 2 | + |
| 3 | +- 入口文件:`./.trae/jobs/auto-test.md` |
| 4 | +- 作用:根据 `develop...HEAD` 的代码差异,自动生成/更新测试用例与快照,并运行覆盖率与报告 |
| 5 | + |
| 6 | +## 参数 |
| 7 | +- `sinceBranch`:默认 `develop` |
| 8 | +- `project`:默认 `auto`(自动识别变更包);可指定如 `@visactor/vchart` |
| 9 | +- `mode`:`full`(默认) |
| 10 | +- `noSnapshot`:是否跳过快照,默认 `false` |
| 11 | +- `onlyNew`:仅生成新的自动化区块,默认 `false` |
| 12 | +- `reportFormat`:`md|json`,默认 `md` |
| 13 | +- `applyManualOverrides`:应用人工覆写,默认 `true` |
| 14 | +- `replaceAutogen`:允许替换已有 `autogen:` 块,默认 `false` |
| 15 | +- `dryRun`:仅预览不写文件,默认 `false` |
| 16 | +- `preview`:是否预览模式,默认 `false` |
| 17 | +- `stopOnError`:遇错停止,默认 `true` |
| 18 | +- `focusChangedOnly`:仅聚焦变更,默认 `true` |
| 19 | +- `snapshotStrategy`:`combined`(默认) |
| 20 | +- `tempReportPath`:默认 `./.trae/output/autotest.report.local.md` |
| 21 | +- `mockDefaults`:默认 `time=fixed(2020-01-01T00:00:00Z)`、`random=seed(42)` |
| 22 | + |
| 23 | +## 使用(Solo) |
| 24 | +- 最简:在聊天中发起“执行 Auto Test Job(.trae/jobs/auto-test.md)” |
| 25 | +- 指定包:`project: '@visactor/vchart'` |
| 26 | +- 指定输出格式:`reportFormat: 'json'` |
| 27 | + |
| 28 | +## 输出 |
| 29 | +- `test_files`:新增/更新的 `.test.ts` |
| 30 | +- `snapshots`:快照文件 |
| 31 | +- `coverage_report`:覆盖率摘要 |
| 32 | +- `manual_nodes`:需人工处理的用例占位 |
| 33 | +- `temp_markdown_report`:临时报告(默认写入 `./.trae/output/autotest.report.local.md`) |
| 34 | + |
| 35 | +## 成功标准 |
| 36 | +- `tests_generated_for_changed_exports` |
| 37 | +- `compile_without_errors` |
| 38 | +- `coverage_increase_or_maintained` |
| 39 | + |
| 40 | +## 人工覆写示例 |
| 41 | +```yaml |
| 42 | +manual_overrides: |
| 43 | + - target: packages/vchart/src/util/color.ts#parseColor |
| 44 | + mocks: |
| 45 | + date: fixed(2020-01-01T00:00:00Z) |
| 46 | + random: seed(42) |
| 47 | + inputs: |
| 48 | + - { args: ['#ff0000'], desc: '基本路径' } |
| 49 | + - { args: ['invalid'], desc: '异常路径' } |
| 50 | + asserts: |
| 51 | + - { expect: 'toEqual', value: { r: 255, g: 0, b: 0 } } |
| 52 | +``` |
| 53 | +
|
| 54 | +## 运行与诊断 |
| 55 | +- 我会自动执行 `rush run -p <project> -s test` 与 `test-cov` |
| 56 | +- TypeScript 诊断与覆盖率结果会写入临时报告以便复核 |
| 57 | + |
| 58 | +## 注意事项 |
| 59 | +- 若差异范围为空,建议指定 `project` 以运行目标包测试 |
| 60 | +- 对低覆盖模块,建议补充手动测试并复跑 Auto Test 以提升覆盖率 |
0 commit comments