diff --git a/run_tests.sh b/run_tests.sh index 3961b56..aba9218 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -1,27 +1,54 @@ #!/bin/bash +if [ -z "${FORMAT}" ] ; then + FORMAT=TAP +fi + +case ${FORMAT} in + "TAP") EXT=tap; OUT_FORCE=true ;; + "JUNIT") EXT=xml; OUT_FORCE=false ;; + "TEXT") EXT=txt; OUT_FORCE=true ;; + *) echo "ERROR: Unknown format ${FORMAT}"; exit 1 ;; +esac + mkdir -p reports rm -rf reports/* -if [[ ! -z "$@" ]]; then - for i in $@; do - f="tests/$i.lua" - if [ ! -f $f ]; then - echo "No $f found" - else - echo "testing $f -> reports/${i}.tap" - cat< reports/${i}.tap -require "tests/$i" +function do_test() { + echo "testing $1 -> reports/${1}.${EXT}" + if ${OUT_FORCE} ; then + cat< reports/${1}.${EXT} +require "tests/${1}" +---- Control test output: +local lu = LuaUnit +lu:setOutputType('${FORMAT}') +lu:setVerbosity(1) +lu:run() +EOF + else + cat< reports/test_all.tap -#EOF \ No newline at end of file +for i in $(find tests -name '*.lua' ! -name test_\*) ; do + do_test "$(basename "$i" .lua)" +done