UNITTEST=0
INTEGRATION=0
FAILURES=0
+TESTS_RUN=0
+COVERAGE=0
dup() {
if [ $# -ne 2 ]; then
local title="$1"
local title_len=${#title}
title_len=$((title_len + 4))
- local width=76
+ local width=70
local left=4
local right=$(($width-($title_len+$left)))
local color="$2"
else
OUT=$( python3 ${doctest} 2>&1 )
fi
+ TESTS_RUN=$((TESTS_RUN+1))
FAILED=$( echo "${OUT}" | grep '\*\*\*Test Failed\*\*\*' | wc -l )
if [ $FAILED == 0 ]; then
echo "OK"
FAILURES=$((FAILURES+1))
FAILED_TESTS="${FAILED_TESTS},${BASE} (python3 ${test})"
fi
+ TESTS_RUN=$((TESTS_RUN+1))
done
fi
FAILURES=$((FAILURES+1))
FAILED_TESTS="${FAILED_TESTS},${BASE} (python3 ${test})"
fi
+ TESTS_RUN=$((TESTS_RUN+1))
done
fi
if [ ${COVERAGE} -eq 1 ]; then
make_header "Code Coverage Report" "${GREEN}"
- coverage report --omit=config-3.8.py --sort=-cover
+ coverage report --omit=config-3.8.py,*_test.py --sort=-cover
echo
- echo "To reproduce this report without run-running the tests, invoke:"
+ echo "To recall this report w/o run-running the tests:"
echo
- echo " $ coverage report --omit=config-3.8.py --sort=-cover"
+ echo " $ coverage report --omit=config-3.8.py,*_test.py --sort=-cover"
+ echo
+ echo "...from the 'tests' directory. Note that subsequent calls to "
+ echo "run_tests.sh with --coverage will klobber previous results. See:"
+ echo
+ echo " https://coverage.readthedocs.io/en/6.2/"
echo
fi
FAILED_TESTS=$(echo ${FAILED_TESTS} | sed 's/^,/__/g')
FAILED_TESTS=$(echo ${FAILED_TESTS} | sed 's/,/\n__/g')
if [ ${FAILURES} -eq 1 ]; then
- echo -e "${RED}There was ${FAILURES} failure:"
+ echo -e "${RED}There was ${FAILURES}/${TESTS_RUN} failure:"
else
- echo -e "${RED}There were ${FAILURES} failures:"
+ echo -e "${RED}There were ${FAILURES}/${TESTS_RUN} failures:"
fi
echo "${FAILED_TESTS}"
echo -e "${NC}"
exit ${FAILURES}
else
- echo -e "${BLACK}${ON_GREEN}Everything looks good.${NC}"
+ echo -e "${BLACK}${ON_GREEN}All (${TESTS_RUN}) test(s) passed.${NC}"
exit 0
fi