Bonjour,
J'utilise SquashTM 5 et SquashAUTOM.
La configuration est OK.
L'orchestrateur (image docker squashtest/squash-orchestrator) est bien configuré et la communication avec le serveur d'exécution est OK.
Lorsque je lance un test Cypress défini dans un cas de test dans SquashTM, je recontre l'erreur suivante lors de l'exécution.
...
[2023-06-14T15:29:05] [job 496d8b3c-0b1c-40bf-a3c9-338722937691] Running function cypressparamsv1
[2023-06-14T15:29:06] [job 496d8b3c-0b1c-40bf-a3c9-338722937691] Running function cypressexecutev1
[2023-06-14T15:29:15] [job 496d8b3c-0b1c-40bf-a3c9-338722937691] Your configFile is invalid: /home/orchestrator/496d8b3c-0b1c-40bf-a3c9-338722937691/testsquash/cypress.config.js
[2023-06-14T15:29:15] [job 496d8b3c-0b1c-40bf-a3c9-338722937691]
[2023-06-14T15:29:15] [job 496d8b3c-0b1c-40bf-a3c9-338722937691] It threw an error when required, check the stack trace below:
[2023-06-14T15:29:15] [job 496d8b3c-0b1c-40bf-a3c9-338722937691]
[2023-06-14T15:29:15] [job 496d8b3c-0b1c-40bf-a3c9-338722937691] Error: Cannot find module 'cypress'
[2023-06-14T15:29:15] [job 496d8b3c-0b1c-40bf-a3c9-338722937691] Require stack:
...
L'erreur est "normale" car les node_modules ne sont pas dans le dépôt Git.
Dans le workflow, après la phase de checkout des sources, il faudrait passer la commande "npm install" pour installer les modules du projet et Cypress.
Comment puis-je faire ? Peux-t'on utiliser un hook (before/after) ?
Merci pour votre aide,
Antony
Execution test auto Cypress depuis SquashTM
Re: Execution test auto Cypress depuis SquashTM
Bonjour Antony,
Vous pouvez effectivement mettre un hook sur l'action "checkout" pour faire un "npm install" juste après le "git clone".
Il y a un exemple d'un tel hook dans la doc : https://autom-devops-fr.doc.squashtest. ... paration_3 (il s'agit là d'un hook qui opère un "git checkout <branch>" juste après le "git clone" fait par l'action "checkout").
Cordialement,
Laurent
Vous pouvez effectivement mettre un hook sur l'action "checkout" pour faire un "npm install" juste après le "git clone".
Il y a un exemple d'un tel hook dans la doc : https://autom-devops-fr.doc.squashtest. ... paration_3 (il s'agit là d'un hook qui opère un "git checkout <branch>" juste après le "git clone" fait par l'action "checkout").
Cordialement,
Laurent
Re: Execution test auto Cypress depuis SquashTM
Bonjour Laurent,
Merci pour votre réponse, cela m'a donné quelques pistes mais je suis toujours bloqué.
J'ai essayé de mettre dans le fichier /app/conf/cypress.yaml :
Est-ce le bon préfixe, la bonne catégorie ?
J'avais essayé avant mais sans succès :
Antony
Merci pour votre réponse, cela m'a donné quelques pistes mais je suis toujours bloqué.
J'ai essayé de mettre dans le fichier /app/conf/cypress.yaml :
Code : Tout sélectionner
hooks:
- name: npm install hook
events:
- categoryPrefix: cypress
category: cypress
before:
- run: echo "NPM INSTALL HOOK"
run: npm install
J'avais essayé avant mais sans succès :
Code : Tout sélectionner
hooks:
- name: npm install hook
events:
- categoryPrefix: cypress
category: execute
before:
- run: echo "NPM INSTALL HOOK"
run: npm install
Re: Execution test auto Cypress depuis SquashTM
Squash TM utilise l'action "cypress/execute".
Mais ce serez mieux de mettre le hook sur l'action "actions/checkout" (en "after" comment dans l'exemple mentionné auparavant), ce n'est pas la peine de faire un "npm install" à chaque exécution de test, non ?
Le fichier /app/conf/actionprovider.yaml devrait ressembler à : Cordialement,
Laurent
Mais ce serez mieux de mettre le hook sur l'action "actions/checkout" (en "after" comment dans l'exemple mentionné auparavant), ce n'est pas la peine de faire un "npm install" à chaque exécution de test, non ?
Le fichier /app/conf/actionprovider.yaml devrait ressembler à : Cordialement,
Laurent
Re: Execution test auto Cypress depuis SquashTM
J'ai effectivement remis le hook dans le fichier actionprovider.yaml
Par contre, j'ai trouvé pourquoi cela ne fonctionnait pas.
La commande dans run doit être :
Après le clone du dépôt, il faut se déplacer dans le dépôt avant npm install
Maintenant, j'ai une autre question, car j'ai mis le nom du répertoire "en dur". Existe t-il une variable que je peux utiliser ?
Par contre, j'ai trouvé pourquoi cela ne fonctionnait pas.
La commande dans run doit être :
Code : Tout sélectionner
run: cd testsquash && npm install
Maintenant, j'ai une autre question, car j'ai mis le nom du répertoire "en dur". Existe t-il une variable que je peux utiliser ?