Skip to content

Commit 132cce9

Browse files
authored
Merge pull request #4357 from VisActor/feat/optimize-radar-axes
feat: support autoLabelMaxWidth in circleAxis
2 parents 1025b61 + 60851c4 commit 132cce9

15 files changed

Lines changed: 479 additions & 168 deletions

File tree

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ report.html
4747
coverage/
4848

4949
*.local.ts
50+
*.local.md
5051

5152
# Dependency directories
5253
node_modules/
@@ -132,4 +133,4 @@ packages/vchart/__tests__/runtime/node/**.png
132133
# env files
133134
.env.local
134135

135-
*.tsbuildinfo
136+
*.tsbuildinfo

.trae/jobs/README.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# 通过说明文件驱动执行
2+
3+
## 目的
4+
5+
- 不依赖“工作流模版”概念,仅在仓库中放置一个说明文件,描述任务与参数;我将按说明执行并回传报告。
6+
7+
## 放置位置
8+
9+
- 目录:`.trae/jobs/`
10+
- 文件:建议使用 `*.request.md``*.request.json`,便于版本化与审阅。
11+
12+
## 通用字段
13+
14+
- `Task`:任务标识,例如 `Autotest (diff-with-develop)`
15+
- `Parameters`:运行参数,例如 `sinceBranch``project``mode``noSnapshot``onlyNew``reportFormat`
16+
- `ExecutionHints`(可选):执行提示,如是否跳过快照、是否仅分析、不写补丁、选择包。
17+
- `StepsOverride`(可选):覆盖默认执行步骤的命令或动作(如自定义 diff 命令)。
18+
19+
## 示例(Markdown 请求)
20+
21+
```
22+
# Task
23+
Autotest (diff-with-develop)
24+
25+
# Parameters
26+
sinceBranch: develop
27+
project: ''
28+
mode: full
29+
noSnapshot: false
30+
onlyNew: false
31+
reportFormat: md
32+
33+
# ExecutionHints
34+
- skipWrite: false
35+
- stopOnError: true
36+
37+
# StepsOverride
38+
- git fetch --all --prune
39+
- git diff --name-status --diff-filter=AMR develop...HEAD
40+
- rush run -s test
41+
- rush run -s test-cov
42+
```
43+
44+
## 使用方式
45+
46+
- 推荐入口文件:`.trae/jobs/autotest.md`(已提供,含参数、步骤、人工覆写与成功标准)
47+
- 最简用法(默认参数):在聊天中发起“执行 Autotest Job(.trae/jobs/autotest.md)”。
48+
- 可选覆盖参数:`project=@visactor/vchart-theme``reportFormat=json``replaceAutogen=true` 等。
49+
- 我将按 `.trae/jobs/autotest.md` 的步骤顺序执行:采集差异、分析缺口、生成/更新测试(含函数级注释)、运行覆盖率、生成报告、插入人工节点。
50+
51+
## 结果与报告
52+
53+
- 报告以 `reportFormat` 指定(`md``json`)。
54+
- 我会附带执行日志摘要、受影响包、生成/跳过的测试、覆盖率与人工节点清单。
55+
56+
## 旧方案清理
57+
58+
- 旧的“工作流模版”文件与文档已移除:
59+
- `.trae/workflows/autotest.diff-with-develop.json`
60+
- `docs/autotest-workflow.md`
61+
- 现仅保留 Job 文件方案(`.trae/jobs/autotest.md`)。
62+
63+
## 默认参数(参考)
64+
65+
- `sinceBranch=develop`
66+
- `project=auto`(自动按 diff 识别变更包)
67+
- `mode=full`
68+
- `noSnapshot=false`
69+
- `onlyNew=false`
70+
- `reportFormat=md`
71+
- `applyManualOverrides=true`
72+
- `replaceAutogen=false`
73+
- `dryRun=false`
74+
- `preview=false`
75+
- `stopOnError=true`
76+
- `focusChangedOnly=true`
77+
- `snapshotStrategy=combined`
78+
- `mockDefaults: time=fixed(2020-01-01T00:00:00Z), random=seed(42)`

.trae/jobs/autotest.md

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
---
2+
job: unit-test-autogen
3+
intent: generate-unit-tests-from-diff
4+
version: v1
5+
domain: testing
6+
runner: trae-solo
7+
parameters:
8+
sinceBranch: develop
9+
project: auto
10+
mode: full
11+
noSnapshot: false
12+
onlyNew: false
13+
reportFormat: md
14+
applyManualOverrides: true
15+
replaceAutogen: false
16+
dryRun: false
17+
preview: false
18+
stopOnError: true
19+
focusChangedOnly: true
20+
snapshotStrategy: combined
21+
tempReportPath: .trae/jobs/autotest.report.local.md
22+
mockDefaults:
23+
time: fixed(2020-01-01T00:00:00Z)
24+
random: seed(42)
25+
constraints:
26+
framework: jest-ts-jest
27+
layout: __tests__/*.test.ts
28+
comments: function-level-jsdoc
29+
outputs:
30+
- test_files
31+
- snapshots
32+
- coverage_report
33+
- manual_nodes
34+
- temp_markdown_report
35+
success_criteria:
36+
- tests_generated_for_changed_exports
37+
- compile_without_errors
38+
- coverage_increase_or_maintained
39+
manual_overrides: []
40+
---
41+
42+
# Autotest Job(差异驱动单元测试自动生成)
43+
44+
## 步骤
45+
46+
1. 差异采集
47+
48+
- 运行 `git fetch --all --prune`
49+
- 运行 `git diff --name-status --diff-filter=AMR {{sinceBranch}}...HEAD`
50+
- 对每个变更文件,运行 `git diff --unified=0 {{sinceBranch}}...HEAD <file>` 获取行级差异
51+
52+
2. 影响分析
53+
54+
- 识别导出符号、类型签名与逻辑分支;在包内搜索已有 `__tests__` 及缺口
55+
56+
3. 测试生成
57+
58+
-`__tests__` 下创建或更新 `.test.ts` 文件;为每个 `describe/it` 添加函数级注释(JSDoc,说明目的、前置/输入、断言点)
59+
- 策略:
60+
- 纯函数/工具:正常/边界/异常分支
61+
- 主题 JSON:`toMatchSnapshot()` + 关键字段断言(颜色、字体、间距)
62+
- 转换器:代表性输入,断言输出结构与关键键值;必要时增量快照
63+
- Mock/Spy:固定时间与随机数;隔离外部依赖(网络/FS)
64+
- 自动化区块命名规则:
65+
- `describe('autogen:<pkg>/<module>:<export>:<hash>')`
66+
- `it('autogen:<case>:<hash>')`
67+
68+
4. 放置与命名
69+
70+
- `src/foo.ts``__tests__/foo.test.ts`;若已有则增量插入新的自动化区块
71+
- 导入路径优先使用公开 API(例如 `src/index.ts`
72+
73+
5. 执行与覆盖率
74+
75+
- 若指定 `project``rush run -p {{project}} -s test``test-cov`
76+
- 未指定则按变更包批量执行上述命令
77+
78+
6. 诊断与报告
79+
80+
- TypeScript 诊断:收集编译错误并在报告中标注阻断项
81+
- 报告输出(`{{reportFormat}}`):列出变更文件 → 新增/更新测试 → 通过/失败 → 覆盖率增量 → 人工节点清单
82+
- 临时报告写入:将本次执行结果以 Markdown 形式写入 `{{tempReportPath}}`
83+
84+
- 必含内容:
85+
- 变更摘要(文件列表与关键行级片段定位)
86+
- 新增/更新测试用例与断言点说明
87+
- 运行结果(套件/用例通过统计、覆盖率摘要、TS 诊断)
88+
- 重点一致性问题与潜在错误点(类型/注释一致性、契约风险、默认值依赖、测试桩稳定性)
89+
- 建议与后续动作(文档补充、契约确认、健壮性增强)
90+
- 示例结构:
91+
92+
```md
93+
# Autotest 临时报告
94+
95+
## 变更摘要
96+
97+
## 行级差异(关键片段)
98+
99+
## 新增/更新的测试
100+
101+
## 运行结果
102+
103+
## 一致性与潜在风险(重点)
104+
105+
## 建议与后续动作
106+
```
107+
108+
7. 人工节点与二次执行
109+
110+
- 初次生成时对不明确 Mock/快照的用例插入占位并标记:`it('autogen:MANUAL_REQUIRED:<reason>')``test.skip(...)`
111+
- 二次执行流程:
112+
- 在本文件 `manual_overrides` 段中添加结构化覆写策略(见下例)或直接编辑测试文件中的占位并移除 `skip`
113+
- 默认不覆盖人工命名块(不含 `autogen:` 前缀);仅增量生成缺失的自动化区块
114+
-`replaceAutogen=true`,允许替换已有 `autogen:` 区块
115+
116+
## manual_overrides 示例
117+
118+
```yaml
119+
manual_overrides:
120+
- target: packages/vchart-theme/src/foo.ts#exportedFn
121+
mocks:
122+
date: fixed(2020-01-01T00:00:00Z)
123+
random: seed(42)
124+
external: "jest.mock('@pkg/bar', () => ({ /* ... */ }))"
125+
inputs:
126+
- { args: [1, 2], desc: '正常路径' }
127+
- { args: [null], desc: '异常路径' }
128+
asserts:
129+
- { expect: 'toEqual', value: { ok: true } }
130+
```
131+
132+
## 执行(Solo 模式)
133+
134+
- 最简用法(使用默认参数):在聊天中发起“执行 Autotest Job(.trae/jobs/autotest.md)”。
135+
- 可选覆盖参数示例:`project=@visactor/vchart-theme`、`reportFormat=json`、`replaceAutogen=true`。
136+
- 我将按上述步骤顺序执行,并返回报告与人工节点处理结果。
137+
- 临时报告路径可通过 `tempReportPath` 覆盖,默认:`.trae/jobs/autotest.report.local.md`。

.trae/jobs/autotest.request.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Task
2+
Autotest (diff-with-develop)
3+
4+
# Parameters
5+
sinceBranch: develop
6+
project: ''
7+
mode: full
8+
noSnapshot: false
9+
onlyNew: false
10+
reportFormat: md
11+
12+
# ExecutionHints
13+
- skipWrite: false
14+
- stopOnError: true
15+
16+
# StepsOverride
17+
# 如需覆盖默认步骤,取消下面行的注释并按需修改
18+
# - git fetch --all --prune
19+
# - git diff --name-status --diff-filter=AMR develop...HEAD
20+
# - rush run -s test
21+
# - rush run -s test-cov

0 commit comments

Comments
 (0)