Je connais un peu l'outil de test Gauge et je travaille maintenant à son exécution via Jenkins.

Premièrement: j'ai défini gauge --version dans le champ "Exécuter la commande batch Windows". C'était le résultat:

Started by user anonymous
Building in workspace C:\jenkins\workspace\Run_Gauge_Test
[Run_Gauge_Test] $ cmd /c call C:\WINDOWS\TEMP\hudson8329964667758110371.bat

C:\jenkins\workspace\Run_Gauge_Test>gauge --version 
Gauge version: 0.6.2

Plugins
-------
No plugins found
Plugins can be installed with `gauge --install {plugin-name}`

C:\jenkins\workspace\Run_Gauge_Test>exit 0 
Finished: SUCCESS

Comparez cela à la sortie que j'obtiens si j'exécute Gauge directement en ligne de commande:

C:\jenkins\workspace\Run_Gauge_Test>gauge --version
Gauge version: 0.6.2

Plugins
-------
html-report (2.1.1)
java (0.5.1)
xml-report (0.1.3)

J'ai donc mis la même commande dans un fichier de commandes et l'ai exécutée uniquement pour obtenir à nouveau le message "aucun plug-in trouvé". Comme dernière option, j'ai coché le Use custom workspace et défini mon répertoire dans un dossier où j'exécute habituellement des tests de jauge à partir de la ligne de commande, mais c'est toujours "aucun plug-in trouvé"

Ensuite, j'ai essayé de l'exécuter en tant que commande shell. Production:

Started by user anonymous
Building in workspace C:\jenkins\workspace\Run_Gauge_Test
[Run_Gauge_Test] $ sh -xe C:\WINDOWS\TEMP\hudson211231385407124893.sh
The system cannot find the file specified
FATAL: command execution failed
java.io.IOException: Cannot run program "sh" (in directory "C:\jenkins\workspace\Run_Gauge_Test"): CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessBuilder.start(Unknown Source)
    (truncated)
    at hudson.model.Executor.run(Executor.java:404)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(Unknown Source)
    at java.lang.ProcessImpl.start(Unknown Source)
    ... 16 more
Build step 'Execute shell' marked build as failure
Finished: FAILURE

Bien sûr, je vais exécuter les tests de jauge (et cela ne fonctionne pas) plutôt que simplement obtenir la version; mais je pensais qu'il serait plus simple de déterminer pourquoi il n'obtient pas correctement les détails du plugin. Des indices?

0
DPD 17 janv. 2017 à 12:27

2 réponses

Meilleure réponse

Les plugins de jauge doivent être installés via un compte utilisateur / administrateur avec lequel l'agent Jenkins exécute des commandes. Consultez le document suivant pour en savoir plus sur l'intégration avec GoCD et quelques autres outils CI. https://docs.gauge.org/latest/howto/index.html# tutoriels

Longue réponse:

Actuellement , l'exécutable Gauge est installé au niveau du système. Alors que les plugins Gauge (coureurs de langue, plugins de reporting, etc.) sont installés au niveau de l'utilisateur. Donc, si vous installez manuellement des plugins en tant qu'utilisateur unique et sur CI si la tâche est exécutée contre un utilisateur différent, gauge ne pourra pas trouver les plugins.

Pour résoudre ce problème, vous devez exécuter les commandes d'installation du plugin à partir du compte avec lequel CI s'exécute. Ou comme le dit le commentaire de Srikanth, vous pouvez avoir gauge --install-all tâche en cours. Cela installe tous les plugins requis à la volée.

2
Community 9 juil. 2018 à 08:15

Je soupçonne que vous installez et utilisez Gauge en tant qu'utilisateurs différents. Comme avec de nombreux outils CI, les tâches sont souvent exécutées sous un utilisateur différent de celui utilisé pour se connecter à l'agent.

Actuellement, le fonctionnement de Gauge est le suivant: gauge.exe est disponible au niveau du système. Cependant, les plugins sont installés au niveau de l'utilisateur.

Donc, si vous vous connectez en tant que user1 et que vous faites gauge --install java, gauge --version répertoriera java comme plugin uniquement lorsque vous serez connecté en tant que user1.

Cela est également vrai si vous exécutez votre agent CI sous un compte système local.

Une façon de résoudre ce problème est d'inclure la configuration en tant que tâche dans votre pipeline, c'est-à-dire d'avoir un gauge --install-all à partir de la racine de votre projet avant d'essayer d'exécuter vos spécifications.

1
Srikanth Venugopalan 17 janv. 2017 à 12:27