From 2756f16c87be6c08af9358bfbf9c8d3f0139c073 Mon Sep 17 00:00:00 2001 From: Stephen Jones Date: Thu, 22 Oct 2020 02:15:15 +1100 Subject: [PATCH 1/3] Adding fix to generate test summary so reports display graphs correctly --- include/junit_integration | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/include/junit_integration b/include/junit_integration index 090904db..e9ec77c3 100644 --- a/include/junit_integration +++ b/include/junit_integration @@ -61,6 +61,20 @@ prepare_junit_check_output() { finalise_junit_check_output() { echo '' >> "$JUNIT_OUTPUT_FILE" + TEST_COUNT="0" + TEST_SUCCESS_COUNT="0" + TEST_FAILURE_COUNT="0" + TEST_SKIPPED_COUNT="0" + TEST_ERROR_COUNT="0" + TEST_COUNT=$(grep -c "testcase name=" "$JUNIT_OUTPUT_FILE") + TEST_SUCCESS_COUNT=$(grep -A1 "testcase name=" "$JUNIT_OUTPUT_FILE" | grep -c "") + TEST_FAILURE_COUNT=$(grep -A1 "testcase name=" "$JUNIT_OUTPUT_FILE" | grep -c " "$JUNIT_OUTPUT_FILE.$$" && mv "$JUNIT_OUTPUT_FILE.$$" "$JUNIT_OUTPUT_FILE" } output_junit_success() { From 87f91cf4678b3378d9a9e70946b89ee916ab72f7 Mon Sep 17 00:00:00 2001 From: Stephen Jones Date: Fri, 30 Oct 2020 22:51:11 +1100 Subject: [PATCH 2/3] Removing gnarly code and add refined counters for summary metrics in output --- include/junit_integration | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/include/junit_integration b/include/junit_integration index e9ec77c3..a4854c6b 100644 --- a/include/junit_integration +++ b/include/junit_integration @@ -14,6 +14,11 @@ # Generates JUnit XML reports which can be read by Jenkins or other CI tools JUNIT_OUTPUT_DIRECTORY="junit-reports" +JUNIT_TESTS_COUNT="0" +JUNIT_SUCCESS_COUNT="0" +JUNIT_FAILURES_COUNT="0" +JUNIT_SKIPPED_COUNT="0" +JUNIT_ERRORS_COUNT="0" is_junit_output_enabled() { if [[ " ${MODES[@]} " =~ " junit-xml " ]]; then @@ -44,7 +49,7 @@ prepare_junit_check_output() { JUNIT_OUTPUT_FILE="$JUNIT_OUTPUT_DIRECTORY/TEST-$1.xml" printf '%s\n' \ "" \ - "" \ + "" \ " " \ " " \ " " \ @@ -60,24 +65,21 @@ prepare_junit_check_output() { } finalise_junit_check_output() { + # Calculate Total and populate summary info + JUNIT_TESTS_COUNT=$((JUNIT_SUCCESS_COUNT+$JUNIT_FAILURES_COUNT+$JUNIT_SKIPPED_COUNT+$JUNIT_ERRORS_COUNT)) + sed "s/_TESTS_COUNT_/${JUNIT_TESTS_COUNT}/g;s/_FAILURES_COUNT_/${JUNIT_FAILURES_COUNT}/g;s/_SKIPPED_COUNT_/${JUNIT_SKIPPED_COUNT}/g;s/_ERRORS_COUNT_/${JUNIT_ERRORS_COUNT}/g" "$JUNIT_OUTPUT_FILE" > "$JUNIT_OUTPUT_FILE.$$" + mv "$JUNIT_OUTPUT_FILE.$$" "$JUNIT_OUTPUT_FILE" echo '' >> "$JUNIT_OUTPUT_FILE" - TEST_COUNT="0" - TEST_SUCCESS_COUNT="0" - TEST_FAILURE_COUNT="0" - TEST_SKIPPED_COUNT="0" - TEST_ERROR_COUNT="0" - TEST_COUNT=$(grep -c "testcase name=" "$JUNIT_OUTPUT_FILE") - TEST_SUCCESS_COUNT=$(grep -A1 "testcase name=" "$JUNIT_OUTPUT_FILE" | grep -c "") - TEST_FAILURE_COUNT=$(grep -A1 "testcase name=" "$JUNIT_OUTPUT_FILE" | grep -c " "$JUNIT_OUTPUT_FILE.$$" && mv "$JUNIT_OUTPUT_FILE.$$" "$JUNIT_OUTPUT_FILE" + # Reset global counters as test output closed + JUNIT_TESTS_COUNT="0" + JUNIT_SUCCESS_COUNT="0" + JUNIT_FAILURES_COUNT="0" + JUNIT_SKIPPED_COUNT="0" + JUNIT_ERRORS_COUNT="0" } output_junit_success() { + JUNIT_SUCCESS_COUNT=$(($JUNIT_SUCCESS_COUNT+1)) output_junit_test_case "$1" "$(xml_escape "$1")" } @@ -87,10 +89,12 @@ output_junit_info() { } output_junit_failure() { + JUNIT_FAILURES_COUNT=$(($JUNIT_FAILURES_COUNT+1)) output_junit_test_case "$1" "" } output_junit_skipped() { + JUNIT_SKIPPED_COUNT=$(($UNIT_SKIPPED_COUNT+1)) output_junit_test_case "$1" "" } From e7f837eb7b9e6da3dc3cbec19403ee40aad145c4 Mon Sep 17 00:00:00 2001 From: Stephen Jones Date: Tue, 3 Nov 2020 22:45:27 +1100 Subject: [PATCH 3/3] Correct typo and simplify count --- include/junit_integration | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/junit_integration b/include/junit_integration index a4854c6b..dc1bdbc6 100644 --- a/include/junit_integration +++ b/include/junit_integration @@ -79,7 +79,7 @@ finalise_junit_check_output() { } output_junit_success() { - JUNIT_SUCCESS_COUNT=$(($JUNIT_SUCCESS_COUNT+1)) + ((JUNIT_SUCCESS_COUNT++)) output_junit_test_case "$1" "$(xml_escape "$1")" } @@ -89,12 +89,12 @@ output_junit_info() { } output_junit_failure() { - JUNIT_FAILURES_COUNT=$(($JUNIT_FAILURES_COUNT+1)) + ((JUNIT_FAILURES_COUNT++)) output_junit_test_case "$1" "" } output_junit_skipped() { - JUNIT_SKIPPED_COUNT=$(($UNIT_SKIPPED_COUNT+1)) + ((JUNIT_SKIPPED_COUNT++)) output_junit_test_case "$1" "" }