mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2024-11-24 09:50:45 -06:00
141 lines
3.2 KiB
Bash
Executable File
141 lines
3.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
DATABASE=./storage/database/database.sqlite
|
|
DATABASECOPY=./storage/database/databasecopy.sqlite
|
|
ORIGINALENV=./.env
|
|
BACKUPENV=./.env.current
|
|
TESTINGENV=./.env.testing
|
|
|
|
# do something with flags:
|
|
resetTestFlag=''
|
|
testflag=''
|
|
coverageflag=''
|
|
|
|
featureflag=''
|
|
featuretestclass=''
|
|
|
|
unitflag=''
|
|
unittestclass=''
|
|
|
|
verbalflag=''
|
|
testsuite=''
|
|
configfile='phpunit.xml';
|
|
|
|
while getopts 'vcrtf:u:s:' flag; do
|
|
case "${flag}" in
|
|
r)
|
|
resetTestFlag='true'
|
|
;;
|
|
t)
|
|
testflag='true'
|
|
;;
|
|
c)
|
|
coverageflag='true'
|
|
configfile='phpunit.coverage.xml';
|
|
;;
|
|
v)
|
|
verbalflag=' -v --debug'
|
|
echo "Will be verbal about it"
|
|
;;
|
|
f)
|
|
featureflag='true'
|
|
featuretestclass=./tests/Feature/$OPTARG
|
|
echo "Will only run Feature test $OPTARG"
|
|
;;
|
|
u)
|
|
unitflag='true'
|
|
unittestclass=./tests/Unit/$OPTARG
|
|
echo "Will only run Unit test $OPTARG"
|
|
;;
|
|
s)
|
|
testsuite="--testsuite $OPTARG"
|
|
echo "Will only run test suite '$OPTARG'"
|
|
;;
|
|
*) error "Unexpected option ${flag}" ;;
|
|
esac
|
|
done
|
|
|
|
if [[ $coverageflag == "true" && ($featureflag == "true" || $unitflag == "true") ]]
|
|
then
|
|
echo "Use config file specific.xml"
|
|
configfile='phpunit.coverage.specific.xml'
|
|
fi
|
|
|
|
|
|
# backup current config (if it exists):
|
|
if [ -f $ORIGINALENV ]; then
|
|
mv $ORIGINALENV $BACKUPENV
|
|
fi
|
|
|
|
# enable testing config
|
|
cp $TESTINGENV $ORIGINALENV
|
|
|
|
# reset database (optional)
|
|
if [[ $resetTestFlag == "true" ]]
|
|
then
|
|
echo "Must reset database"
|
|
|
|
# touch files to make sure they exist.
|
|
touch $DATABASE
|
|
touch $DATABASECOPY
|
|
|
|
# truncate original database file
|
|
truncate $DATABASE --size 0
|
|
|
|
# run migration
|
|
php artisan migrate:refresh --seed
|
|
|
|
# call test data generation script
|
|
$(which php) /sites/FF3/test-data/artisan generate:data local sqlite
|
|
|
|
# also run upgrade routine:
|
|
$(which php) /sites/FF3/firefly-iii/artisan firefly:upgrade-database
|
|
|
|
# copy new database over backup (resets backup)
|
|
cp $DATABASE $DATABASECOPY
|
|
|
|
# copy new database to test-data repository:
|
|
cp $DATABASE /sites/FF3/test-data/storage/database.sqlite
|
|
fi
|
|
|
|
# do not reset database (optional)
|
|
if [[ $resetTestFlag == "" ]]
|
|
then
|
|
echo "Will not reset database"
|
|
fi
|
|
|
|
echo "Copy test database over original"
|
|
# take database from copy:
|
|
cp $DATABASECOPY $DATABASE
|
|
|
|
echo "clear caches and what-not.."
|
|
php artisan cache:clear
|
|
php artisan config:clear
|
|
php artisan route:clear
|
|
php artisan twig:clean
|
|
php artisan view:clear
|
|
|
|
# run PHPUnit
|
|
if [[ $testflag == "" ]]
|
|
then
|
|
echo "Must not run PHPUnit"
|
|
else
|
|
echo "Must run PHPUnit"
|
|
|
|
if [[ $coverageflag == "" ]]
|
|
then
|
|
echo "Must run PHPUnit without coverage:"
|
|
|
|
echo "phpunit $verbalflag --configuration $configfile $featuretestclass $unittestclass $testsuite"
|
|
phpunit $verbalflag --configuration $configfile $featuretestclass $unittestclass $testsuite
|
|
else
|
|
echo "Must run PHPUnit with coverage"
|
|
echo "phpunit $verbalflag --configuration $configfile $featuretestclass $unittestclass $testsuite"
|
|
phpunit $verbalflag --configuration $configfile $featuretestclass $unittestclass $testsuite
|
|
fi
|
|
fi
|
|
|
|
# restore current config:
|
|
if [ -f $BACKUPENV ]; then
|
|
mv $BACKUPENV $ORIGINALENV
|
|
fi |