Exécution du script bash dans Gradle
Je suis en train de faire les tests fonctionnels avec geb.
Mon application est déployée à l'aide de la vierge et utilise HSQLDB pour stocker des données. Je voudrais faire des tests sur cette version de travail de l'application, mais je voudrais commencer avec une base de données vide, chaque fois que je lance webtests.
J'ai écrit un script bash simple
#!/bin/sh
rm -rf $VIRGO_HOME/aresdb*
$VIRGO_HOME/bin/shutdown.sh &
sleep 10
$VIRGO_HOME/bin/startup.sh &
qui supprime la base de données et de redémarrage de la vierge.
Cependant, lorsque je l'ajoute à ma construction.gradle tâche d'exécution de la commande ne se termine jamais.
task cleanDB(type: Exec) {
commandLine './clean.sh'
}
Pourquoi est-il de cette façon? Lorsque j'exécute ce script dans la console elle se retourne rapidement (mais la vierge écrit encore à la console).
J'ai essayé de l'exécuter dans le thread, mais j'ai rencontré l'erreur suivante:
task cleanDBThread()<<{
def cleanDBThread1 = Thread.start {
cleanDB.execute()
}
sleep 10000
println "wake up!"
}
Exception in thread "Thread-32" java.lang.IllegalStateException:
Cannot start long running operation, as the task artifact state cache
(/home/tomasz/ares/.gradle/1.0-milestone-9/taskArtifacts) has not been locked.
J'ai aussi essayé l'établissement de "create-drop" dans hibernate configuration, mais il exige également le redémarrage de la vierge. Même le redéploiement de l'application n'aide pas.
Que dois-je faire pour exécuter webtests avec base de données vide?
source d'informationauteur tkowal
Vous devez vous connecter pour publier un commentaire.
C'est bizarre
J'ai créé une tâche
que les appels cl.sh fichier
cet appel acl.sh
et cela a fonctionné! mais une chose cependant, lorsque vous ajoutez ./acl.sh esperluette & vous êtes à l'appel de la tâche à partir d'un autre thread qui a commencé gradle, et ressemble un peu c'est la pendaison. Je voudrais supprimer les & à partir de vos appels à l'arrêt et de démarrage comme ce
de toute façon vous voulez attendre dans le même fil à partir d'arrêt pour démarrer, et pas besoin d'appeler le sommeil trop!