Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# GitHub 项目状态看板

静态 GitHub Pages 看板,展示 Issue、PR、门禁、每日构建、版本验证、UT / ST / E2E、标签化测试及 Node.js / Python 覆盖率(可展开到文件)。总览优先列出需要处理的流水线问题;Issue 与 PR 可在表格和本地看板之间切换;CI、测试与 Coverage 可在 main 和长期开发分支之间切换查看。采集由看板仓 GitHub Actions 执行;Bot 负责接收 Webhook 和触发刷新。
静态 GitHub Pages 看板,展示 Issue、PR、门禁、每日构建、版本验证、UT / ST / E2E、标签化测试及 Node.js / Python 覆盖率(可展开到文件)。总览优先列出需要处理的流水线问题;Issue 与 PR 可在表格和本地看板之间切换;CI、E2E 与 Coverage 可在 main 和长期开发分支之间切换查看。采集由看板仓 GitHub Actions 执行;Bot 负责接收 Webhook 和触发刷新。

| 用途 | 数据源 | 站点 |
| --- | --- | --- |
Expand Down
4 changes: 2 additions & 2 deletions docs/branch-lines.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## 功能

源仓当前以 `main` 为默认分支,另有 `legacy` 和 `releases/v0.3.0.beta`。CI、测试、Coverage 三页在页首提供“分支线”切换,每次只显示一条分支线的数据,各线互不混合:
源仓当前以 `main` 为默认分支,另有 `legacy` 和 `releases/v0.3.0.beta`。CI、E2E、Coverage 三页在页首提供“分支线”切换,每次只显示一条分支线的数据,各线互不混合:

- 每个 run 归入它的工作所针对的分支:PR 运行归入 PR 的目标分支,push、手动、定时运行归入运行所在分支。
- 目标分支不是任何已配置分支线的 run(版本 tag、其他分支的 push、无法匹配 PR 的运行)归入默认分支线,因此每个 run 只计一次。Nightly 按运行所在分支归线,手动在 release 分支执行也归 release 线。
Expand Down Expand Up @@ -52,7 +52,7 @@

## 边界

- 分支线只影响 CI、测试、Coverage 三页的展示与归类,不改变采集范围、历史记录和 Bot 触发策略。
- 分支线只影响 CI、E2E、Coverage 三页的展示与归类,不改变采集范围、历史记录和 Bot 触发策略。
- `legacy` 和 `releases/v0.3.0.beta` 的标签化目录和完整覆盖率基线需要来自各自分支的 push 或手动运行;目标为它们的 PR 可能修改规则,不作为基线依据。
- 已归档到默认分支、后来才配置分支线的历史 run 会在重建快照时按目标分支重新归类;标签化目录只从配置后的新运行读取。

Expand Down
18 changes: 12 additions & 6 deletions docs/dashboard-pages.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 页面与交互

看板只展示已采集的稳定状态,不运行测试。页面依次为:总览、Issue、PR、CI、测试、Coverage、版本验证、运维、GitCode 同步(见 [GitCode 同步记录](gitcode-sync.md))。配置了[分支线](branch-lines.md)时,CI、测试、Coverage 页首可在 main、legacy 与 release 分支之间切换,每次只显示一条分支线。旧的“看板”“构建报告”“历史数据”页已移除;看板形式并入 Issue 与 PR 页,历史分片仍作为采集器的存储保留。
看板只展示已采集的稳定状态,不运行测试。页面依次为:总览、Issue、PR、CI、E2E、Coverage、GitCode 同步(见 [GitCode 同步记录](gitcode-sync.md))。配置了[分支线](branch-lines.md)时,CI、E2E、Coverage 页首可在 main、legacy 与 release 分支之间切换,每次只显示一条分支线。旧的“看板”“构建报告”“历史数据”页已移除;看板形式并入 Issue 与 PR 页,历史分片仍作为采集器的存储保留。

页首显示快照时间。没有数据变化的采集不改快照时间,新的 UTC 日期会重建一次,Bot 至少每 8 小时采集一次;所以快照超过 36 小时未更新时,页面提示采集可能已停止。

Expand Down Expand Up @@ -55,15 +55,15 @@ CI、PR、Issue 数据不可读取时显示“状态未知”,不会显示为

## 测试与 Coverage

测试页展示:
E2E 页展示:

- 测试文件与最近一次 UT / E2E 用例数;
- Real E2E 质量评分:顶部是最近两天的 Nightly、最近一次 `real-e2e-results` 的出处和四个汇总数字;下面与 E2E 执行记录同一种排版,按评分体系(DeepResearchBench、BiomniBench、Research Team、PUCT Compression)分类,类别可收起,每个用例一排 ✓/×,按时间从左到右表示每次记录的交付结果,悬停或聚焦显示日期、交付、评分状态、各项分数、耗时和 run,点击打开该 run。每个用例下方直接画出每项分数和运行耗时的历史曲线,并标出最新值;交付失败的运行在分数曲线上画 ×,用虚线沿用上次实测(无历史按 0),缺失的分数留空不补零。历史为该分支线每个用例最近 30 个运行日(每天取一次运行)。质量分数仅供观察,不改变 CI 结论;点击用例名打开该用例的旅程报告页 `real-e2e.html`,列出场景、前置条件、评分表和执行历史。
- 保留期内 E2E 运行的[执行记录](e2e-run-records.md):按类别和用例汇总的执行状态时间轴、各次步骤与错误摘要,及历史点直接跳转的 HTML 附件;
- [标签化测试](tagged-tests.md);
- 按层 / 包的测试文件分布,以及按包的测试结构。

除最近一次 Real E2E 评分和保留期内的 E2E 执行记录外,逐次运行的明细和覆盖率不在测试页展示。
除最近一次 Real E2E 评分和保留期内的 E2E 执行记录外,逐次运行的明细和覆盖率不在 E2E 页展示。

Coverage 页按语言展示整仓汇总、每日趋势、目录树和最近 PR 结果。原来按覆盖率分组列出的“路径覆盖率”表已并入目录树:每个分组就是一个目录,树上同一目录的数值与该分组完全相同。

Expand All @@ -78,9 +78,15 @@ Coverage 页按语言展示整仓汇总、每日趋势、目录树和最近 PR

目录树的数据来自源仓覆盖率摘要中的 `sources` 列表,每项为仓库相对路径加该文件自己的 totals。当前值与整仓结果口径一致:以最新完整基线的文件为底,每个主干增量替换它所测分组下的文件;PR 结果不改变主干视图。其他分支线只用自己运行的摘要,见[分支线](branch-lines.md)。摘要没有 `sources` 时(上游合入逐文件数据之前的主干,以及尚未同步该改动的分支),目录树改用摘要自带的覆盖率分组构建,只展开到分组目录,并在标题中注明。

## 版本验证与运维
## 页面入口

版本验证页只把提交 SHA 与版本一致的验证运行关联到版本,并给出 E2E 通过数;没有匹配运行时明确标出,发布成功不代表测试完成。运维页展示分支与保护、安全、社区健康度、提交活跃度和陈旧治理;贡献者直接链接到 GitHub 的贡献者页面(`/graphs/contributors`),看板不再采集贡献者数据。
「测试」标签改为「E2E」,仍使用 `#tests`,已有报告的返回链接和收藏地址继续可用。版本验证与运维两个标签页及其页面已移除;总览保留已有的版本质量摘要,版本详情改为直达 GitHub,版本构建卡片跳到 CI 页。访问旧的 `#releases`、`#ops` 或未知标签会回到总览,避免空白页。采集数据与历史分片不因页面调整而删除。

以下为隔离样例的桌面和窄屏页面:

![桌面 E2E 页面导航](images/e2e-navigation/e2e-tabs-1440.png)

![390px E2E 页面导航](images/e2e-navigation/e2e-tabs-390.png)

## 验证

Expand All @@ -98,7 +104,7 @@ node .e2e/node_modules/playwright/cli.js test --config test/playwright.config.cj
- 看板列独立滚动与刷新后保留位置;
- 覆盖率目录树的展开、收起、过滤、按覆盖率排序,以及无逐文件数据时按分组展示;
- 分支线切换及各线数据互不混合;
- 版本验证关联;
- E2E 导航、旧报告返回入口、已移除标签的回退与总览版本外链;
- 窄屏布局。

`tests/test_coverage.py` 验证逐文件数据随基线与增量组合;`tests/test_work_trend.py` 验证每日趋势的计算。
6 changes: 3 additions & 3 deletions docs/e2e-run-records.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

## 功能

测试页的“E2E 执行记录”直接按类别(现有分片)列出用例,每个用例展示保留期内各次执行的状态时间轴。类别、用例是列表主体,单次运行只出现在对应历史点的提示中。页面自动读取已经发布的 JSON,不需要先点开某次运行,也不新增采集或下载产物。
E2E 页的“E2E 执行记录”直接按类别(现有分片)列出用例,每个用例展示保留期内各次执行的状态时间轴。类别、用例是列表主体,单次运行只出现在对应历史点的提示中。页面自动读取已经发布的 JSON,不需要先点开某次运行,也不新增采集或下载产物。

计数和状态沿用[测试报告契约](test-reports.md)的 Playwright outcome 规则;测试页其他用例计数卡片和设置弹窗保持不变;Real E2E 质量评分使用同样的“类别 → 用例 → 状态轴”排版,另在用例下画分数曲线,见[页面与交互](dashboard-pages.md)。
计数和状态沿用[测试报告契约](test-reports.md)的 Playwright outcome 规则;E2E 页其他用例计数卡片和设置弹窗保持不变;Real E2E 质量评分使用同样的“类别 → 用例 → 状态轴”排版,另在用例下画分数曲线,见[页面与交互](dashboard-pages.md)。

## 使用方式

- **类别与用例**:打开测试页就能看到分片及其用例,标题在桌面和 390px 窄屏完整换行。点击类别标题可收起或展开用例,默认展开;标题按钮也支持键盘 Enter/空格操作。可按最新一次结果筛选,或搜索分片、用例标题和文件名。
- **类别与用例**:打开E2E 页就能看到分片及其用例,标题在桌面和 390px 窄屏完整换行。点击类别标题可收起或展开用例,默认展开;标题按钮也支持键盘 Enter/空格操作。可按最新一次结果筛选,或搜索分片、用例标题和文件名。
- **执行时间轴**:按创建时间由早到晚,从左到右排列;空间不足时从下一行继续。保留期内的所有历史点一次展示,时间轴没有滚动条,也不撑宽页面。颜色和符号分别表示失败、重试通过、跳过、通过,区块上方提供文字图例。鼠标悬停或键盘 Tab 聚焦到点时,显示该次状态、浏览器时区的完整日期、耗时、运行名称/ID 和测试项目;点本身不铺开这些详情。
- **HTML 记录**:有已托管附件的历史点可在新标签页直接打开这一次的 `e2e/<artifact_id>/<分片>/data/<hash>.html`。无附件或未托管的点不提供链接,不退回 `index.html`。
- **页面内容**:每个用例只保留标题、文件、执行次数、最新状态和状态轴;不再显示步骤、错误摘要、运行详情,也不新增用例弹窗。需要旅程内容时,打开对应历史点的 HTML 附件。
Expand Down
Binary file added docs/images/e2e-navigation/e2e-tabs-1440.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/e2e-navigation/e2e-tabs-390.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions docs/tagged-tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## 功能

测试页的「标签化测试」展示源仓标签化测试框架的冻结目录:
E2E 页的「标签化测试」展示源仓标签化测试框架的冻结目录:

- 每个标签维度有哪些值、各值有多少用例。
- PR / Daily / Release 三个组合分别选取哪些标签值,每个组合选中多少用例。
Expand Down Expand Up @@ -36,7 +36,7 @@
- 下载结果产物时一并读取这三份文件;原始 ZIP、日志和 sourceHash 不保存。
- 目录压缩为“标签签名 + `[用例 ID, 签名序号, 源文件序号]`”,与最近一次各组合运行的选择器、目标和执行结果一起写入 `.sync/tagged.json`。
- 组合规则只取默认分支或已配置[分支线](branch-lines.md)上的非 PR 运行,按分支分别保存;Release 另外接受版本 tag 运行,归入默认分支。PR 分支可能修改自己的策略,因此不作为组合定义。
- 目录取各分支最新一次运行,同一运行的各层结果可以分批补齐。测试页按所选分支线显示;非默认分支线不显示没有运行过的组合。
- 目录取各分支最新一次运行,同一运行的各层结果可以分批补齐。E2E 页按所选分支线显示;非默认分支线不显示没有运行过的组合。
- 标签词表 `test/support/tagged/schema.json` 按各分支目录修订读取一次,用于补齐省略的默认值、列出未使用的词表值;读取失败时保留上一份词表。

计算与源仓框架一致:
Expand Down
2 changes: 1 addition & 1 deletion docs/test-reports.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Actions 产物名使用 `ut-results`、`st-results`、`e2e-results`、`real-e2e-
5. `run.log`:兼容现有 CI 的 TAP / unittest / pytest 汇总,作为没有结构化报告时的后备来源。
6. Real E2E 评分:从 `benchmark-metrics.json`、`team-metrics.json`、`evolve-metrics.json` 分别读取 DeepResearchBench、BiomniBench、Research Team 和 PUCT Compression 的原生分数、交付状态与耗时。看板不统一不同评分器的量纲,也不设置质量通过门槛;prompt、原始响应、错误详情和凭据不会进入公开快照。

Real E2E 的简化分数与运行耗时随每次 run / attempt 保存在看板历史记录中。测试页按分支线、用例 ID 汇总最近 30 次有记录的运行;同一 run 重跑只采用最新 attempt;每个北京日取一次运行,手动或触发式优先,但只在最新 attempt 有可读 `real-e2e-results` 评分的运行中挑选,仍在运行或产物不可读的运行不会挡掉当天已读到的结果;缺失指标或耗时留空,不当作 0。测试页在每个用例下直接画出这些点的全部曲线,不需要打开弹窗。历史只从已采集的产物累积,无法用最新结果推造过去的趋势。
Real E2E 的简化分数与运行耗时随每次 run / attempt 保存在看板历史记录中。E2E 页按分支线、用例 ID 汇总最近 30 次有记录的运行;同一 run 重跑只采用最新 attempt;每个北京日取一次运行,手动或触发式优先,但只在最新 attempt 有可读 `real-e2e-results` 评分的运行中挑选,仍在运行或产物不可读的运行不会挡掉当天已读到的结果;缺失指标或耗时留空,不当作 0。E2E 页在每个用例下直接画出这些点的全部曲线,不需要打开弹窗。历史只从已采集的产物累积,无法用最新结果推造过去的趋势。

同一产物内只取一种报告格式,优先级为 summary、Playwright、标签化 summary、JUnit、log。分片产物必须互不重叠,避免同时上传同一层的合并报告和分片。用例数按报告中的测试实例(包含浏览器项目)计数,不是测试文件数;重试不重复计数。稳定通过率 = passed / tests;skipped 和 flaky 单列,不计稳定通过。零用例不显示 100%。

Expand Down
Loading
Loading