X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=tests%2Frun_tests.sh;h=016ac446467771c4ffde9f53d483cd6845830497;hb=f135ec7ae3d7ca347d7489eb28d30b5db98f49de;hp=db9f8cbb1f45bddb3dce5b9d954e4e61852f9c34;hpb=48d6beaeef30d22e9366fdf7fa5d3311da66bf89;p=python_utils.git diff --git a/tests/run_tests.sh b/tests/run_tests.sh index db9f8cb..016ac44 100755 --- a/tests/run_tests.sh +++ b/tests/run_tests.sh @@ -7,6 +7,10 @@ DOCTEST=0 UNITTEST=0 INTEGRATION=0 FAILURES=0 +TESTS_RUN=0 +COVERAGE=0 +PERF_TESTS=("string_utils_test.py") + dup() { if [ $# -ne 2 ]; then @@ -101,6 +105,7 @@ if [ ${DOCTEST} -eq 1 ]; then 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" @@ -116,10 +121,14 @@ fi if [ ${UNITTEST} -eq 1 ]; then for test in $(find ${ROOT} -name "*_test.py" -print); do BASE=$(basename ${test}) - BASE="${BASE} (unittest)" - make_header "${BASE}" "${GREEN}" + HDR="${BASE} (unittest)" + make_header "${HDR}" "${GREEN}" if [ ${COVERAGE} -eq 1 ]; then coverage run --source ${HOME}/lib --append ${test} --unittests_ignore_perf + if [[ " ${PERF_TESTS[*]} " =~ " ${BASE} " ]]; then + echo "(re-running w/o coverage to record perf results)." + ${test} + fi else ${test} fi @@ -127,6 +136,7 @@ if [ ${UNITTEST} -eq 1 ]; then FAILURES=$((FAILURES+1)) FAILED_TESTS="${FAILED_TESTS},${BASE} (python3 ${test})" fi + TESTS_RUN=$((TESTS_RUN+1)) done fi @@ -144,26 +154,37 @@ if [ ${INTEGRATION} -eq 1 ]; then 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 recall this report w/o run-running the tests:" + echo + 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 if [ ${FAILURES} -ne 0 ]; then 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