@@ -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