Bonjour,
je souhaite appeler un exécutable depuis un script TA. Pour cela, je créé un fichier .bat dans resources qui réalise effectivement l'appel.
Maintenant, dans ce .bat, je souhaiterais remplacer les chemins "en dur" par une variable d'environnement mais il semble que celle-ci ne soit pas remplacée par le moteur d'exécution.
[u]Le fichier .ta[/u]
[code]SETUP :
LOAD stf_launch.bat AS command.file
TEST :
CONVERT command.file TO file(param) USING $(application:googleTest) AS processedAppCommandFile
CONVERT processedAppCommandFile TO file(param) USING context_script_params AS processedCommandFile
CONVERT processedCommandFile TO query.shell USING $(timeout:1800000, streamlength:full) AS commandLine
EXECUTE local WITH commandLine AS result[/code]
[u]Le fichier .bat[/u]
[code]java -cp %TOOL_HOME%\testframework.jar;%TOOL_HOME%\plugins\${application}-tests.jar org.testng.TestNG[/code]
Avec cette écriture, le lancement échoue puisque le classpath fourni à java est invalide
En revanche, si je remplace la variable d'environnement par sa valeur réelle, le lancement se fait correctement
Avez-vous une solution ?
Utiliser les variables d'environnement dans un script TA
-
Karim Drifi
- Messages : 119
- Inscription : lun. nov. 30, 2015 2:45 pm
Utiliser les variables d'environnement dans un script TA
Bonjour,
Les variables d'environnement sont valorisées par l'OS et cela ne devrait pas poser problème.
Afin de comprendre ce qui échoue, pouvez vous exécuter ce script :
[code]
SETUP :
LOAD stf_launch.bat AS command.file
TEST :
CONVERT command.file TO file(param) USING $(application:googleTest) AS processedAppCommandFile
CONVERT processedAppCommandFile TO file(param) USING context_script_params AS processedCommandFile
CONVERT processedCommandFile TO query.shell USING $(timeout:1800000, streamlength:full) AS commandLine
EXECUTE local WITH commandLine AS result
ASSERT result IS success
[/code]
Vous aurez ainsi dans le rapport html un lien vers la sortie stdout et stderr qui pourra nous éclairer.
Je vois par ailleurs un problème dans votre fichier .bat, pouvez vous le remplacer par :
[code]
cmd.exe /C
java -cp %TOOL_HOME%\testframework.jar;%TOOL_HOME%\plugins\${application}-tests.jar org.testng.TestNG
[/code]
Certaines commandes ne sont reconnues par windows que dans une console (cmd.exe).
Bien cordialement,
Karim Drifi.
Les variables d'environnement sont valorisées par l'OS et cela ne devrait pas poser problème.
Afin de comprendre ce qui échoue, pouvez vous exécuter ce script :
[code]
SETUP :
LOAD stf_launch.bat AS command.file
TEST :
CONVERT command.file TO file(param) USING $(application:googleTest) AS processedAppCommandFile
CONVERT processedAppCommandFile TO file(param) USING context_script_params AS processedCommandFile
CONVERT processedCommandFile TO query.shell USING $(timeout:1800000, streamlength:full) AS commandLine
EXECUTE local WITH commandLine AS result
ASSERT result IS success
[/code]
Vous aurez ainsi dans le rapport html un lien vers la sortie stdout et stderr qui pourra nous éclairer.
Je vois par ailleurs un problème dans votre fichier .bat, pouvez vous le remplacer par :
[code]
cmd.exe /C
java -cp %TOOL_HOME%\testframework.jar;%TOOL_HOME%\plugins\${application}-tests.jar org.testng.TestNG
[/code]
Certaines commandes ne sont reconnues par windows que dans une console (cmd.exe).
Bien cordialement,
Karim Drifi.
Utiliser les variables d'environnement dans un script TA
Merci,
viens de tester et cela fonctionne
Le problème venait du fait que je n'avais pas mis le "cmd.exe /C" sur une autre ligne que la commande du programme
Le wiki dit: "For windows, start your command line with: cmd.exe /C"
Mais ne précise pas que cela doit être sur une autre ligne
viens de tester et cela fonctionne
Le problème venait du fait que je n'avais pas mis le "cmd.exe /C" sur une autre ligne que la commande du programme
Le wiki dit: "For windows, start your command line with: cmd.exe /C"
Mais ne précise pas que cela doit être sur une autre ligne
-
Karim Drifi
- Messages : 119
- Inscription : lun. nov. 30, 2015 2:45 pm
Utiliser les variables d'environnement dans un script TA
Bonjour,
Merci pour votre retour, j'ai précisé le wiki.
Cordialement,
Karim Drifi.
Merci pour votre retour, j'ai précisé le wiki.
Cordialement,
Karim Drifi.