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"
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 )
- FAILED=$( echo "${OUT}" | grep '\*\*\*Test Failed\*\*\*' | wc -l )
- if [ $FAILED == 0 ]; then
- echo "OK"
- else
- echo -e "${FAILED}"
- 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
${test}
if [ $? -ne 0 ]; then
FAILURES=$((FAILURES+1))
+ FAILED_TESTS="${FAILED_TESTS},${BASE} (python3 ${test})"
fi
done
fi
${test}
if [ $? -ne 0 ]; then
FAILURES=$((FAILURES+1))
+ FAILED_TESTS="${FAILED_TESTS},${BASE} (python3 ${test})"
fi
done
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.${NC}"
+ echo -e "${RED}There was ${FAILURES} failure:"
else
- echo -e "${RED}There were ${FAILURES} failures.${NC}"
+ echo -e "${RED}There were ${FAILURES} failures:"
fi
+ echo "${FAILED_TESTS}"
+ echo -e "${NC}"
else
- echo -e "${GREEN}Everything looks good.${NC}"
+ echo -e "${BLACK}${ON_GREEN}Everything looks good.${NC}"
fi