logik2021/code/test.sh

39 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
################################################################################################
# NOTE: `chmod +x test.sh` vorher ausführen, um dieses Skript benutzen zu können.
################################################################################################
################################
# HILFSMETHODEN
################################
function call_python() {
[ "$OSTYPE" == "msys" ] && py -3 $@ || python3 $@;
}
function run_check_requirements() {
call_python -m pip install "$( cat requirements )" >> /dev/null;
}
function run_unittests(){
echo -e "\033[1mUNITTESTS\033[0m\n";
local output="$(call_python -m unittest discover -v --top-level-directory "." --start-directory "utests" --pattern "u_*.py" 2>&1)";
echo -e "$output";
if ( echo "$output" | grep -E -q "^[[:space:]]*(FAIL:|FAILED)" ); then
echo -e "[\033[91;1mERROR\033[0m] Unit tests versagt!" && return 1;
else
echo -e "[\033[94;1mINFO\033[0m] Unit tests erfolgreich!" && return 0;
fi
}
################################
# HAUPTVORGÄNGE
################################
# Kann auskommentiert werden, wenn nötige Module schon installiert:
run_check_requirements;
# Code testen (unittests):
run_unittests;