Execution test auto Cypress depuis SquashTM

azanetti
Messages : 3
Inscription : jeu. juin 15, 2023 10:02 am

Execution test auto Cypress depuis SquashTM

Message par azanetti »

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
lmazure
Messages : 8
Inscription : ven. janv. 14, 2022 2:09 pm

Re: Execution test auto Cypress depuis SquashTM

Message par lmazure »

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
azanetti
Messages : 3
Inscription : jeu. juin 15, 2023 10:02 am

Re: Execution test auto Cypress depuis SquashTM

Message par azanetti »

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 :

Code : Tout sélectionner

hooks:
- name: npm install hook
  events:
  - categoryPrefix: cypress
    category: cypress
  before:
  - run: echo "NPM INSTALL HOOK"
    run: npm install
Est-ce le bon préfixe, la bonne catégorie ?

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
Antony
lmazure
Messages : 8
Inscription : ven. janv. 14, 2022 2:09 pm

Re: Execution test auto Cypress depuis SquashTM

Message par lmazure »

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 à :
Screenshot.png
Screenshot.png (63.99 Kio) Consulté 399 fois
Cordialement,
Laurent
azanetti
Messages : 3
Inscription : jeu. juin 15, 2023 10:02 am

Re: Execution test auto Cypress depuis SquashTM

Message par azanetti »

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 :

Code : Tout sélectionner

run: cd testsquash && npm install
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 ?
Répondre

Revenir à « Execution »