生成测试报告。当用户说“测试报告”、“结果摘要”、“测试状态”、“显示结果”、“测试仪表板”或“测试进行得怎么样”时使用。
生成可插入用户现有工作流的测试报告。无需新工具。
检查是否存在最近的测试结果:
ls -la test-results/ playwright-report/ 2>/dev/null
如果没有最近的结果,请运行测试:
npx playwright test --reporter=json,html,list 2>&1 | tee test-output.log
读取 JSON 报告:
npx playwright test --reporter=json 2> /dev/null
提取:
检查已配置的内容并自动路由:
| 检查项 | 如果发现 | 操作 |
|---|---|---|
TESTRAIL_URL 环境变量 | 已配置 TestRail | 通过 /pw:testrail push 推送结果 |
SLACK_WEBHOOK_URL 环境变量 | 已配置 Slack | 将摘要发布到 Slack |
.github/workflows/ | GitHub Actions | 结果通过 artifacts 进入 PR 评论 |
playwright-report/ | HTML 报告器 | 打开或伺服报告 |
| 以上皆无 | 默认 | 生成 Markdown 报告 |
# 测试结果 — {{date}}
## 摘要
- ✅ 通过:{{passed}}
- ❌ 失败:{{failed}}
- ⏭️ 跳过:{{skipped}}
- 🔄 不稳定:{{flaky}}
- ⏱️ 耗时:{{duration}}
## 失败的测试
| 测试 | 错误 | 文件 |
|---|---|---|
| {{name}} | {{error}} | {{file}}:{{line}} |
## 不稳定的测试
| 测试 | 重试次数 | 文件 |
|---|---|---|
| {{name}} | {{retries}} | {{file}} |
## 按项目划分
| 浏览器 | 通过 | 失败 | 耗时 |
|---|---|---|---|
| Chromium | X | Y | Zs |
| Firefox | X | Y | Zs |
| WebKit | X | Y | Zs |
保存至 test-reports/{{date}}-report.md。
curl -X POST "$SLACK_WEBHOOK_URL" \
-H 'Content-Type: application/json' \
-d '{
"text": "🧪 测试结果: ✅ {{passed}} | ❌ {{failed}} | ⏱️ {{duration}}\n{{failed_details}}"
}'
使用 JSON 结果调用 /pw:testrail push。
npx playwright show-report
或者如果在 CI 中:
echo "HTML 报告位于:playwright-report/index.html"
如果 test-reports/ 中存在之前的报告: