X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=tests%2Frun_tests.sh;h=e4b48a0ce600020ec5a71907d1ec5cd6fc46529e;hb=ed8fa2b10b0177b15b7423263bdd390efde2f0c8;hp=6e0c30cf1b3c5ddb9ec6da18b2fb3c5f0553be0e;hpb=6f132c0342ab7aa438ed88d7c5f987cb52d8ca05;p=python_utils.git diff --git a/tests/run_tests.sh b/tests/run_tests.sh index 6e0c30c..e4b48a0 100755 --- a/tests/run_tests.sh +++ b/tests/run_tests.sh @@ -37,6 +37,18 @@ make_header() { echo } +function usage() { + echo "Usage: $0 [-a]|[-i][-u][-d]" + echo + echo "Runs tests under ${ROOT}. Options control which test types:" + echo + echo " -a | --all . . . . . . . . . . . . Run all types of tests" + echo " -d | --doctests . . . . . . . . . Run doctests" + echo " -u | --unittests . . . . . . . . . Run unittests" + echo " -i | --integration . . . . . . . . Run integration tests" + echo + exit 1 +} while [[ $# -gt 0 ]]; do key="$1" @@ -56,33 +68,37 @@ while [[ $# -gt 0 ]]; do INTEGRATION=1 ;; *) # unknown option - echo "Usage: $0 [-a]|[-i][-u][-d]" - echo - echo "Runs tests under ${ROOT}. Options control which test types:" - echo - echo " -a | --all . . . . . . . . . . . . Run all types of tests" - echo " -d | --doctests . . . . . . . . . Run doctests" - echo " -u | --unittests . . . . . . . . . Run unittests" - echo " -i | --integration . . . . . . . . Run integration tests" - echo echo "Argument $key was not recognized." + echo + usage exit 1 ;; esac shift done +if [ $(expr ${DOCTEST} + ${UNITTEST} + ${INTEGRATION}) -eq 0 ]; then + usage + exit 2 +fi + + +FAILED_TESTS="" if [ ${DOCTEST} -eq 1 ]; then - for doctest in $(grep -lR doctest ${ROOT}/*.py); do - BASE=$(basename ${doctest}) - BASE="${BASE} (doctest)" - make_header "${BASE}" "${CYAN}" - OUT=$( python3 ${doctest} 2>&1 ) - if [ "$OUT" == "" ]; then - echo "OK" - else - echo -e "${OUT}" - FAILURES=$((FAILURES+1)) + for doctest in $(grep -lR doctest ${ROOT}/*); do + if [[ ${doctest} == *.py ]]; then + BASE=$(basename ${doctest}) + BASE="${BASE} (doctest)" + make_header "${BASE}" "${CYAN}" + OUT=$( python3 ${doctest} 2>&1 ) + FAILED=$( echo "${OUT}" | grep '\*\*\*Test Failed\*\*\*' | wc -l ) + if [ $FAILED == 0 ]; then + echo "OK" + else + echo -e "${FAILED}" + FAILURES=$((FAILURES+1)) + FAILED_TESTS="${FAILED_TESTS},${BASE} (python3 ${doctest})" + fi fi done fi @@ -95,6 +111,7 @@ if [ ${UNITTEST} -eq 1 ]; then ${test} if [ $? -ne 0 ]; then FAILURES=$((FAILURES+1)) + FAILED_TESTS="${FAILED_TESTS},${BASE} (python3 ${test})" fi done fi @@ -107,10 +124,21 @@ if [ ${INTEGRATION} -eq 1 ]; then ${test} if [ $? -ne 0 ]; then FAILURES=$((FAILURES+1)) + FAILED_TESTS="${FAILED_TESTS},${BASE} (python3 ${test})" fi done fi if [ ${FAILURES} -ne 0 ]; then - echo -e "${RED}There were ${FAILURES} failure(s).${NC}" + 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:" + else + echo -e "${RED}There were ${FAILURES} failures:" + fi + echo "${FAILED_TESTS}" + echo -e "${NC}" +else + echo -e "${BLACK}${ON_GREEN}Everything looks good.${NC}" fi