Skip to content

Commit 976e43a

Browse files
fix: simplify report summary parsing and improve error handling
1 parent bd201fa commit 976e43a

File tree

1 file changed

+14
-48
lines changed

1 file changed

+14
-48
lines changed

.github/workflows/report_summary.yml

Lines changed: 14 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -46,68 +46,34 @@ jobs:
4646
echo "## Smoke Tests Report"
4747
echo ""
4848
49+
# Check if JSON report exists
4950
REPORT_FILE="$REPORT_PATH"
5051
if [ -f "$REPORT_FILE" ]; then
51-
PASSED=$(jq -r '.summary.passed // empty' "$REPORT_FILE" 2>/dev/null || true)
52-
FAILED=$(jq -r '.summary.failed // empty' "$REPORT_FILE" 2>/dev/null || true)
53-
SKIPPED=$(jq -r '.summary.skipped // empty' "$REPORT_FILE" 2>/dev/null || true)
54-
ERRORS=$(jq -r '.summary.errors // empty' "$REPORT_FILE" 2>/dev/null || true)
55-
56-
if [ -z "${PASSED}" ] || [ -z "${FAILED}" ] || [ -z "${SKIPPED}" ] || [ -z "${ERRORS}" ]; then
57-
if jq -e '.tests' "$REPORT_FILE" >/dev/null 2>&1; then
58-
PASSED=$(jq '[.tests[] | select(.outcome=="passed")] | length' "$REPORT_FILE")
59-
FAILED=$(jq '[.tests[] | select(.outcome=="failed" or .outcome=="error")] | length' "$REPORT_FILE")
60-
SKIPPED=$(jq '[.tests[] | select(.outcome=="skipped")] | length' "$REPORT_FILE")
61-
ERRORS=$(jq '[.tests[] | select(.outcome=="error")] | length' "$REPORT_FILE")
62-
fi
63-
fi
64-
65-
PASSED=${PASSED:-0}
66-
FAILED=${FAILED:-0}
67-
SKIPPED=${SKIPPED:-0}
68-
ERRORS=${ERRORS:-0}
52+
# Parse JSON report
53+
PASSED=$(jq '.summary.passed // 0' "$REPORT_FILE")
54+
FAILED=$(jq '.summary.failed // 0' "$REPORT_FILE")
55+
SKIPPED=$(jq '.summary.skipped // 0' "$REPORT_FILE")
56+
ERROR=$(jq '.summary.errors // 0' "$REPORT_FILE")
6957
58+
# Add summary stats
7059
echo "| Status | Count |"
7160
echo "| ------ | ----- |"
72-
echo "| ✅ Passed | ${PASSED} |"
73-
echo "| ❌ Failed | ${FAILED} |"
74-
echo "| ⚠️ Error | ${ERRORS} |"
75-
echo "| ⏭️ Skipped | ${SKIPPED} |"
61+
echo "| ✅ Passed | ${PASSED:-0} |"
62+
echo "| ❌ Failed | ${FAILED:-0} |"
63+
echo "| ⚠️ Error | ${ERROR:-0} |"
64+
echo "| ⏭️ Skipped | ${SKIPPED:-0} |"
7665
echo ""
7766
78-
TOTAL=$((PASSED + FAILED + ERRORS + SKIPPED))
67+
# Add test result details if available
68+
TOTAL=$((${PASSED:-0} + ${FAILED:-0} + ${ERROR:-0} + ${SKIPPED:-0}))
7969
echo "**Total Tests:** $TOTAL"
8070
echo ""
81-
if [ "${FAILED}" -gt 0 ] || [ "${ERRORS}" -gt 0 ]; then
71+
if [ "${FAILED:-0}" -gt 0 ] || [ "${ERROR:-0}" -gt 0 ]; then
8272
echo "❌ **Some tests failed!** Please check the detailed report."
8373
else
8474
echo "✅ **All tests passed!**"
8575
fi
8676
echo ""
87-
88-
echo ""
89-
echo "### Test results"
90-
echo ""
91-
echo "| Test | Status |"
92-
echo "| ---- | ------ |"
93-
if jq -e '.tests' "$REPORT_FILE" >/dev/null 2>&1; then
94-
jq -r '.tests[] | "\(.nodeid)\t\(.outcome // \"passed\")"' "$REPORT_FILE" | \
95-
while IFS=$'\t' read -r NODEID OUTCOME; do
96-
case "${OUTCOME}" in
97-
passed) ICON="✅ Passed" ;;
98-
failed) ICON="❌ Failed" ;;
99-
error) ICON="⚠️ Error" ;;
100-
skipped) ICON="⏭️ Skipped" ;;
101-
xfailed) ICON="❗ XFailed" ;;
102-
xpassed) ICON="❗ XPassed" ;;
103-
*) ICON="${OUTCOME}" ;;
104-
esac
105-
ESC_NODEID=$(printf '%s' "${NODEID}" | sed 's/`/\\`/g' | sed 's/|/\\|/g')
106-
echo "| \`${ESC_NODEID}\` | ${ICON} |"
107-
done
108-
else
109-
echo "No per-test details available in report.json"
110-
fi
11177
else
11278
echo "❌ No report.json file was generated"
11379
fi

0 commit comments

Comments
 (0)