d_bag/bin/test.sh

52 lines
1.1 KiB
Bash

#!/bin/bash
printf "### start preparation ###\n"
WORKPATH=$(dirname ${0})
printf ">> workpath is %s\n" ${WORKPATH}
LOG_DIR="${WORKPATH}/../storage/logs/tests"
printf ">> log-dir is %s\n" ${LOG_DIR}
printf ">> create and truncate log dir\n"
mkdir -p ${LOG_DIR}
rm -rf ${LOG_DIR}/*
printf ">> truncate and migrate database\n"
php artisan migrate:fresh --env=testing --quiet
printf ">> cleaning previous tests ###\n"
${WORKPATH}/../vendor/bin/codecept clean
printf "### finish preparation ###\n"
printf "### start tests ###\n"
SUCCESS=1
execSuite() {
${WORKPATH}/../vendor/bin/codecept run ${1} \
--xml report_${1}.xml ${CODECEPT_OPTIONS} | tee ${LOG_DIR}/tests_${1}.log
if [[ ${PIPESTATUS[0]} -ne 0 ]]
then
SUCCESS=0
fi
}
execSuite unit
execSuite functional
if [[ ${?} -ne 0 ]]
then
SUCCESS=0
fi
printf "### finish tests ###\n"
if [[ ${SUCCESS} -eq 1 ]]
then
printf ">> all tests are \e[01;32mgreen\e[0m\n"
exit 0
else
printf ">> at least one test is \e[01;31mred\e[0m\n"
exit 1
fi