#!/usr/bin/env bash # Si docker et execution directe (hors conteneur) depuis le repertoire data/ (bind du repertoire docker) # => on rappelle ce meme script avec le CLI docker puis on exit [ -f ../docker-compose.yml ] && (docker exec -it labinvent $0 $* ; true) && exit # Execution SANS docker, ou bien AVEC docker depuis le conteneur echo "IN $(pwd)" TESTEXEC=vendor/phpunit/phpunit/phpunit TESTEXEC2=vendor/bin/phpunit # Tous les tests TESTALL=1 # Quelques tests seulement (au moins 1) #TESTALL=0 #echo "arg1 is: $1" #echo "arg2 is: $2" #echo "all is: $*" # D'abord on affiche la version courante ##########./VERSION # Souvent necessaire pour que les tests se passent bien: ###sudo rm -rf tmp/cache/* #rm -rf tmp/cache/*/* ##sudo chmod o+w tmp/cache/persistent/myapp_cake_core_translations_* > /dev/null 2>&1 if [[ "$1" != "" ]] ; then #$TESTEXEC --filter $* $TESTEXEC --filter $1 TESTALL=2 elif [[ $TESTALL == 1 ]] ; then $TESTEXEC || $TESTEXEC2 # Si ca ne marche pas, essayer plutot: #vendor/phpunit/phpunit/phpunit # Plus de details: #vendor/bin/phpunit --debug #vendor/bin/phpunit --verbose --log-tap tap.log #vendor/bin/phpunit --testdox elif [[ $TESTALL == 0 ]] ; then # Executer UN SEUL test: # Ex: je veux executer ONLY le test testMat31CreateAs() de MaterielsControllerTest: #vendor/bin/phpunit --filter testMat31CreateAs #vendor/bin/phpunit --filter testMat32CreateAdministratifOrTechnicalAs #vendor/bin/phpunit --filter testACLEditUtilisateur #vendor/bin/phpunit --filter testMatCopy $TESTEXEC --filter EmpruntsControllerTest::testAdd fi exit # On remet en accès pour tous les repertoires tmp et logs (pour que Apache puisse toujours écrire dedans) : ##chmod -R 777 ./tmp/ # - tmp/cache : obligé d'utiliser sudo a cause des fichiers créés par le serveur web (appartiennent à _www sur Mac) sudo chmod -R 777 ./tmp/cache/ chmod -R 777 ./logs/ ##sudo rm -f tmp/cache/persistent/myapp_cake_core_translations_* ##sudo rm -rf ./tmp/cache/* #rm -rf ./tmp/cache/*