Skip to content

ci: 增加组件覆盖率与快照回归门禁 - #1054

Open
RSS1102 wants to merge 1 commit into
developfrom
rss1102/ci/component-regression-gates
Open

ci: 增加组件覆盖率与快照回归门禁#1054
RSS1102 wants to merge 1 commit into
developfrom
rss1102/ci/component-regression-gates

Conversation

@RSS1102

@RSS1102 RSS1102 commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

🤔 这个 PR 的性质是?

勾选规则:
1.只要有新增参数,就勾选”新特性提交“
2.只修改内部bug,未新增参数,才勾选”日常 bug 修复“
3.其他选项视具体改动判断

  • 日常 bug 修复
  • 新特性提交
  • 文档改进
  • 演示代码改进
  • 组件样式/交互改进
  • CI/CD 改进
  • 重构
  • 代码风格优化
  • 测试用例
  • 分支合并
  • 其他

🔗 相关 Issue

无关联 Issue;用于补充 #1050 的持续回归门禁。

💡 需求背景和解决方案

Switch 组件测试、Demo 交互测试与 light/dark Golden 已在本地建立,但原 CNB 和 GitHub test pipeline 均未执行这些测试;原 GitHub workflow 对 Refresh 也仅生成 LCOV,没有执行既有的 95% 覆盖率门禁。

  • 将 Refresh 专用覆盖率脚本收敛为通用组件覆盖率检查器,统一解析 coverage/lcov.info,目前支持 refreshswitch
  • CNB 与 GitHub CI 在 Flutter 3.32.0、latest 两个版本均执行 Switch 组件测试和生产源码 95% 覆盖率门禁。
  • Flutter 3.32.0 Linux 作为权威 Golden 环境,执行 Switch Demo 结构、交互及 light/dark Golden 严格比对。
  • Flutter latest 执行 Switch Demo 结构与交互测试,通过 golden tag 排除跨 Flutter 引擎的像素基线比对。
  • GitHub CI 同步执行 Refresh 的 95% 覆盖率门禁,使 CNB 与 GitHub 的覆盖率判定保持一致。
  • 更新 Spec 014 验收记录,明确两套 CI 环境分别承担的验证职责。

本地验证:

  • Switch 组件测试 15 项通过,生产源码覆盖率 341/358 = 95.25%
  • Switch Demo 完整测试 4 项通过,light/dark Golden 在非更新模式下通过。
  • Switch Demo 排除 Golden 后的结构与交互测试 2 项通过。
  • Refresh 测试 32 项通过,生产源码覆盖率 184/190 = 96.84%
  • GitHub workflow YAML 解析和 git diff --check 通过。

本次仅调整 CI 与测试基础设施,不改变组件公开 API、运行时行为或视觉效果,无需新增 Spec。

📝 更新日志

  • 无用户可感知变更

  • 本条 PR 不需要纳入 Changelog

☑️ 请求合并前的自查清单

⚠️ 请自检并全部勾选全部选项⚠️

  • 标题遵循 Conventional Commits 格式:type(<scope>?): 修改描述
    示例:fix(TBottomTabBar): 修复 iconText 模式底部溢出
  • “相关 Issue”处带上修复的 Issue 链接或无关联 Issue
  • 已添加对应的 Spec 链接,或已由 Review 确认本次改动无需 Spec
  • 相关文档已补充或无须补充

@github-actions

Copy link
Copy Markdown
Contributor

完成

Web Demo

APK 下载

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant