如何用jq将Jest覆盖率数据转为Markdown在GitHub Actions展示
Jest 测试覆盖率转 Markdown 脚本(适配 GitHub Actions)
在你的 ci.yml 中,执行完 Jest 测试生成 coverage-summary.json 后,添加以下步骤即可将覆盖率数据转为美观的 Markdown 格式并输出到 $GITHUB_STEP_SUMMARY:
- name: Generate test coverage summary in Markdown run: | echo "## 🧪 Jest Test Coverage Summary" >> $GITHUB_STEP_SUMMARY # 生成总覆盖率统计表格 echo "### Overall Coverage" >> $GITHUB_STEP_SUMMARY jq -r ' .total | "| Metric | Value |\n|---------|-------|\n" + "| Statements | \( .statements.pct )% |\n" + "| Branches | \( .branches.pct )% |\n" + "| Functions | \( .functions.pct )% |\n" + "| Lines | \( .lines.pct )% |" ' coverage-summary.json >> $GITHUB_STEP_SUMMARY # 生成各文件覆盖率详情表格 echo -e "\n### File-by-File Coverage Details" >> $GITHUB_STEP_SUMMARY jq -r ' del(.total) | to_entries | "| File | Statements | Branches | Functions | Lines |\n|-------|-------------|-----------|------------|-------|\n" + map( "| \( .key ) | \( .value.statements.pct )% | \( .value.branches.pct )% | \( .value.functions.pct )% | \( .value.lines.pct )% |" ) | join("\n") ' coverage-summary.json >> $GITHUB_STEP_SUMMARY
说明
- 脚本通过
jq直接解析coverage-summary.json的嵌套结构,先提取total节点生成总览统计,再遍历剩余的文件节点生成详情表格 - 输出的 Markdown 会自动在 GitHub Actions 的步骤摘要中以表格形式展示,可读性远优于原始 JSON
内容的提问来源于stack exchange,提问作者Pix81
相关产品推荐
相关产品推荐

