Skip to content

Commit

Permalink
Assert not all tests skipped
Browse files Browse the repository at this point in the history
We look at the junit xml file to compare the number of tests
against the number of tests skipped and if the number of skipped tests
is not lesser then we fail.

Signed-off-by: Daniel Hiller <[email protected]>
  • Loading branch information
dhiller committed Jul 19, 2021
1 parent 5a5adc9 commit 295714d
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 0 deletions.
57 changes: 57 additions & 0 deletions automation/assert-not-all-tests-skipped.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#!/usr/bin/env bash
#
# This file is part of the KubeVirt project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Copyright 2021 Red Hat, Inc.
#
#

set -euo pipefail

function usage() {
cat <<EOF
usage: $0 <junit_xml_file>
Check that the number of skipped testcases is lesser than the number of testcases,
exit with non-zero exit code if that is not the case.
EOF
}

function main() {
if [ "$#" -lt 1 ]; then
usage
exit 1
fi
if [ ! -f "$1" ]; then
usage
echo "Test results file $1 does not exist or is not a file!"
exit 1
fi
local test_results_file="$1"

number_of_testcases=$(grep -c '<testcase' "$test_results_file")
number_of_skipped_testcases=$(grep -c '<skipped' "$test_results_file")

echo "Testcases executed:" "$number_of_testcases"
echo "Testcases skipped:" "$number_of_skipped_testcases"

if [ ! "$number_of_testcases" -gt "$number_of_skipped_testcases" ]; then
echo "ERROR: all test cases have been skipped!"
exit 1
fi
}

main "$@"
3 changes: 3 additions & 0 deletions automation/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -406,3 +406,6 @@ if [ -n "$RUN_REST_COVERAGE" ]; then
--ignore-resource-version
echo "REST API coverage report generated"
fi

# Sanity check test execution by looking at results file
./automation/assert-not-all-tests-skipped.sh "${ARTIFACTS}/junit.functest.xml"

0 comments on commit 295714d

Please sign in to comment.