mirror of
https://github.com/ghndrx/prowler.git
synced 2026-02-11 07:15:15 +00:00
Removing gnarly code and add refined counters for summary metrics in output
This commit is contained in:
@@ -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' \
|
||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>" \
|
||||
"<testsuite name=\"$(xml_escape "$(get_junit_classname)")\" timestamp=\"$(get_iso8601_timestamp)\">" \
|
||||
"<testsuite name=\"$(xml_escape "$(get_junit_classname)")\" tests=\"_TESTS_COUNT_\" failures=\"_FAILURES_COUNT_\" skipped=\"_SKIPPED_COUNT_\" errors=\"_ERRORS_COUNT_\" timestamp=\"$(get_iso8601_timestamp)\">" \
|
||||
" <properties>" \
|
||||
" <property name=\"prowler.version\" value=\"$(xml_escape "$PROWLER_VERSION")\"/>" \
|
||||
" <property name=\"aws.profile\" value=\"$(xml_escape "$PROFILE")\"/>" \
|
||||
@@ -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 '</testsuite>' >> "$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 "<system-out>")
|
||||
TEST_FAILURE_COUNT=$(grep -A1 "testcase name=" "$JUNIT_OUTPUT_FILE" | grep -c "<failure message")
|
||||
TEST_SKIPPED_COUNT=$(grep -A1 "testcase name=" "$JUNIT_OUTPUT_FILE" | grep -c "<skipped message")
|
||||
TEST_ERROR_COUNT=$(grep -A1 "testcase name=" "$JUNIT_OUTPUT_FILE" | grep -c "<error message")
|
||||
EXTRACT_TESTSUITE_NAME=$(awk '/<testsuite name=/ { print $1,$2}' "$JUNIT_OUTPUT_FILE")
|
||||
EXTRACT_TESTSUITE_TIME=$(awk '/<testsuite name=/ { print $3}' "$JUNIT_OUTPUT_FILE");
|
||||
NEW_TESTSUITE_NAME=$(echo "$EXTRACT_TESTSUITE_NAME tests=\"$TEST_COUNT\" failures=\"$TEST_FAILURE_COUNT\" skipped=\"$TEST_SKIPPED_COUNT\" errors=\"$TEST_ERROR_COUNT\" $EXTRACT_TESTSUITE_TIME")
|
||||
sed "s/<testsuite name=.*/$NEW_TESTSUITE_NAME/g" "$JUNIT_OUTPUT_FILE" > "$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" "<system-out>$(xml_escape "$1")</system-out>"
|
||||
}
|
||||
|
||||
@@ -87,10 +89,12 @@ output_junit_info() {
|
||||
}
|
||||
|
||||
output_junit_failure() {
|
||||
JUNIT_FAILURES_COUNT=$(($JUNIT_FAILURES_COUNT+1))
|
||||
output_junit_test_case "$1" "<failure message=\"$(xml_escape "$1")\"/>"
|
||||
}
|
||||
|
||||
output_junit_skipped() {
|
||||
JUNIT_SKIPPED_COUNT=$(($UNIT_SKIPPED_COUNT+1))
|
||||
output_junit_test_case "$1" "<skipped message=\"$(xml_escape "$1")\"/>"
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user