mirror of
				https://github.com/firefly-iii/firefly-iii.git
				synced 2025-10-25 21:16:47 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			142 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			142 lines
		
	
	
		
			3.3 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 "./vendor/bin/phpunit $verbalflag --configuration $configfile $featuretestclass $unittestclass $testsuite"
 | |
|         ./vendor/bin/phpunit $verbalflag  --configuration $configfile $featuretestclass $unittestclass $testsuite
 | |
|     else
 | |
|         echo "Must run PHPUnit with coverage"
 | |
|         echo "./vendor/bin/phpunit $verbalflag --configuration $configfile $featuretestclass $unittestclass $testsuite"
 | |
|         ./vendor/bin/phpunit $verbalflag --configuration $configfile $featuretestclass $unittestclass $testsuite
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| # restore current config:
 | |
| if [ -f $BACKUPENV ]; then
 | |
|     mv $BACKUPENV $ORIGINALENV
 | |
| fi
 |