97 lines
2.2 KiB
Bash
Executable File
97 lines
2.2 KiB
Bash
Executable File
#!/bin/env bash
|
|
|
|
function error() {
|
|
if [ -t 1 ]; then echo "[MAK] ERROR: $*" >&2; fi; exit 0;
|
|
}
|
|
|
|
usage() {
|
|
cat <<EOF
|
|
Usage: $(basename "${BASH_SOURCE[0]}") [-h] [-t] [-v] [-p VERSION]
|
|
|
|
Runs all the PHP unit tests.
|
|
|
|
If -p is not set, the default intalled PHP is used.
|
|
|
|
Available options:
|
|
|
|
-h, --help Print this help and exit
|
|
-t, --testdox Enable testdox output for phpunit
|
|
-v, --verbose Enable verbose output for PHPunit
|
|
-p, --php VERSION Chose PHP version in the form of "N.N", if not found will exit
|
|
EOF
|
|
exit
|
|
}
|
|
|
|
# set base variables
|
|
BASE_PATH=$(pwd)"/";
|
|
PHPUNIT_CONFIG="${BASE_PATH}phpunit.xml";
|
|
PHP_BIN_PATH=$(which php);
|
|
if [ -z "${PHP_BIN_PATH}" ]; then
|
|
echo "Cannot find php binary";
|
|
exit;
|
|
fi;
|
|
DEFAULT_PHP_VERSION=$(${PHP_BIN_PATH} -r "echo PHP_MAJOR_VERSION.'.'.PHP_MINOR_VERSION;");
|
|
if [ -z "${DEFAULT_PHP_VERSION}" ]; then
|
|
echo "Cannot set default PHP version";
|
|
exit;
|
|
fi;
|
|
# -c phpunit.xml
|
|
# --testdox
|
|
# call with "-tt" to give verbose testdox output
|
|
# SUPPORTED: https://www.php.net/supported-versions.php
|
|
# call with -p <php version number> to force a certain php version
|
|
|
|
opt_testdox="";
|
|
opt_verbose="";
|
|
php_version="";
|
|
no_php_version=0;
|
|
while [ -n "${1-}" ]; do
|
|
case "${1}" in
|
|
-t | --testdox)
|
|
opt_testdox="--testdox";
|
|
;;
|
|
-v | --verbose)
|
|
opt_verbose="--verbose";
|
|
;;
|
|
-p | --php)
|
|
php_version="${2-}";
|
|
shift
|
|
;;
|
|
-h | --help)
|
|
usage
|
|
;;
|
|
# invalid option
|
|
-?*)
|
|
error "[!] Unknown option: '$1'."
|
|
;;
|
|
esac
|
|
shift;
|
|
done;
|
|
|
|
if [ -z "${php_version}" ]; then
|
|
php_version="${DEFAULT_PHP_VERSION}";
|
|
no_php_version=1;
|
|
fi;
|
|
php_bin="${PHP_BIN_PATH}${php_version}";
|
|
echo "Use PHP Version: ${php_version}";
|
|
|
|
if [ ! -f "${php_bin}" ]; then
|
|
echo "Set php ${php_bin} does not exist";
|
|
exit;
|
|
fi;
|
|
php_bin="${php_bin} ";
|
|
|
|
# Note 4dev/tests/bootstrap.php has to be set as bootstrap file in phpunit.xml
|
|
phpunit_call="${php_bin}${BASE_PATH}vendor/bin/phpunit ${opt_testdox} ${opt_verbose} -c ${PHPUNIT_CONFIG} ${BASE_PATH}4dev/tests/";
|
|
|
|
${phpunit_call};
|
|
|
|
echo -e "\nPHPUnit Config: ${PHPUNIT_CONFIG}";
|
|
if [ "${no_php_version}" -eq 0 ]; then
|
|
echo "CALLED WITH PHP: ${php_bin}$(${php_bin} --version)";
|
|
else
|
|
echo "Default PHP used: $(php --version)";
|
|
fi;
|
|
|
|
# __END__
|