docs: design one-click AI test workflow
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
# AI 单测一键生成与覆盖率分析设计
|
||||
|
||||
## 目标
|
||||
|
||||
让用户在“项目与增量”Tab 内完成从增量分析到单测生成、Maven 验证和 JaCoCo 增量覆盖率计算的完整流程,避免任务停在 `ANALYZED` 状态而误以为覆盖率生成失败。
|
||||
|
||||
## 交互设计
|
||||
|
||||
- “项目与增量”Tab 提供主操作“生成单测并分析覆盖率”。
|
||||
- 主操作按顺序执行:增量分析、CodeFree 生成单测、Maven 测试编译、Maven/JaCoCo 测试、增量覆盖率计算。
|
||||
- 保留“仅分析增量”作为次要操作,用于检查增量范围。
|
||||
- 执行成功后自动展示“结果与合并”Tab,并优先展示覆盖率结果;生成文件仍可在结果区查看。
|
||||
- 任一阶段失败后自动展示“运行日志”,状态栏说明失败阶段,不将 `ANALYZED` 表示成完整任务成功。
|
||||
- 工具链 Tab 不在启动或主流程中自动展开、切换或弹出。只有工具链缺失或验证失败时,提示用户进入该 Tab 处理。
|
||||
|
||||
## 默认工具链配置
|
||||
|
||||
- 用户保存过配置时始终优先使用保存值。
|
||||
- 没有保存配置或对应路径为空时执行自动探测:
|
||||
1. JDK 8 优先读取 `JAVA_HOME`,其次根据当前 `java.home` 识别 JDK 根目录;若运行时位于 `jre` 子目录则取父目录。
|
||||
2. Maven 优先读取 `MAVEN_HOME` 或 `M2_HOME`,其次调用全局 `mvn -version` 并解析 `Maven home:`。
|
||||
3. CodeFree 使用全局命令 `codefree`。
|
||||
- 当前 Windows 开发环境的兜底值为:
|
||||
- JDK 8:`C:\Program Files\Java\jdk-1.8`
|
||||
- Maven:`D:\bestpay-maven\apache-maven-3.8.6`
|
||||
- Windows 兜底仅在路径真实存在时使用;macOS/Linux 不写入 Windows 路径,保持跨平台探测。
|
||||
- 成功探测出的配置保存到现有 `settings.properties`,后续启动直接复用。
|
||||
|
||||
## 执行与状态模型
|
||||
|
||||
- 复用现有 `AiTestWorkflow.analyze` 与 `generateAndVerify`,由界面层的一键协调方法串联,不复制领域逻辑。
|
||||
- 第一步返回 `ANALYZED` 时立即进入生成验证;返回 `FAILED` 或 `CANCELLED` 时停止。
|
||||
- 一键任务从开始到最终状态只维护一次 busy/progress 生命周期,防止两段异步调用之间按钮闪烁或旧结果覆盖新结果。
|
||||
- 保留现有最新请求保护逻辑;项目切换或重复操作不得用旧异步结果覆盖当前选择。
|
||||
|
||||
## 错误处理
|
||||
|
||||
- 工具链路径无效时在执行前失败,提示缺失项并定位到工具链配置,而不是启动 CodeFree/Maven 后才失败。
|
||||
- CodeFree、测试编译、测试执行和覆盖率计算的失败分别保留原始日志,并显示可读阶段信息。
|
||||
- 覆盖率未生成时明确显示失败原因,不只显示“尚无覆盖率结果”。
|
||||
|
||||
## 测试策略
|
||||
|
||||
- 配置测试覆盖已保存值优先、环境变量探测、`java.home` 的 `jre` 归一化、`mvn -version` 解析及 Windows 兜底存在性。
|
||||
- JavaFX 结构测试覆盖第一 Tab 的主/次操作以及工具链 Tab 默认不被选择。
|
||||
- 协调流程测试覆盖:分析成功后继续生成、分析失败时停止、最终覆盖率被渲染、失败时切换运行日志。
|
||||
- 回归测试继续使用 `master...DEV_1156339215001460262`,验证 `ft-loancapital-core-start` 的显式目标引用分析不受影响。
|
||||
|
||||
## 范围限制
|
||||
|
||||
- 不实现 MixMax3。
|
||||
- 不修改 CodeFree CLI 的协议和现有质量规范格式。
|
||||
- 不自动合并生成代码;仍需用户审核后显式合并到目标本地分支。
|
||||
- 不优化“手机 UI 自动化”插件。
|
||||
Reference in New Issue
Block a user