Installez et prenez en main Cypress

Graphique de banniĂšre

Vous avez bien saisi les enjeux des tests fonctionnels et en quoi Cypress peut vous aider dans cette tñche ? Il est temps de faire vos premiers pas avec Cypress. Mais avant toute chose, l’installation. C’est parti !

Installez NodeJS

Dans ce cours, vous allez exĂ©cuter des lignes de commande npm. La façon la plus simple d’installer npm est d’installer Node.js qui l’intĂšgre.

Pour cela, rendez-vous sur le site nodejs.org et tĂ©lĂ©chargez la derniĂšre version LTS de Node. Double-cliquez sur le fichier afin de l’exĂ©cuter. Une fenĂȘtre similaire Ă  la suivante apparaĂźt : 

Capture d'écran de l'assistant d'installation de Node.js
Écran d'accueil dans node.js

Suivez les Ă©tapes en acceptant la licence aprĂšs l’avoir lue. Vous pouvez laisser les autres Ă©tapes par dĂ©faut.

Pour vĂ©rifier que l’installation s’est bien passĂ©e, ouvrez votre terminal.

Tapez  node -v  qui devrait vous renvoyer la version de Node.js installée.

Vous ĂȘtes prĂȘt Ă  installer Cypress !

Installez Cypress

Pour installer Cypress, vous devez taper une ligne de commande dans le terminal.

Tapez le code suivant dans le terminal :

npm install cypress --save-dev 

 Vous devez obtenir un message qui ressemble au suivant :
 

Découvrez les extensions Cypress

Au cours de votre carriĂšre, vous aurez sĂ»rement besoin d’extensions, ou plugins, dans Cypress. Ces extensions fournissent une aide prĂ©cieuse pour coder et tester en ajoutant des fonctions Ă  Cypress. Ce cours n’en utilise pas, mais il est bon d’en connaĂźtre quelques-unes pour la suite.

La documentation de Cypress officialise 6 extensions : 

  • Cypress Fixture-IntelliSense : Prend en charge vos cy.fixture() grĂące Ă  IntelliSense pour vos fixtures existantes. Une fixture est un ensemble de donnĂ©es prĂ©dĂ©finies ou d’objets d’état utilisĂ©s lors des tests unitaires, tests d’intĂ©gration ou tests fonctionnels.
    IntelliSense est une fonctionnalitĂ© d’aide Ă  la programmation par certains IDE (environnements de dĂ©veloppement). Les avantages principaux sont : 

    • la suggestion automatique de code : lorsque vous commencez Ă  taper du code, IntelliSense propose des suggestions ;

    • la complĂ©tion automatique : IntelliSense complĂšte automatiquement les noms de fonctions, de propriĂ©tĂ©s et de variables ;

    • la documentation contextuelle : IntelliSense affiche une documentation contextuelle ;

    • la dĂ©tection d’erreurs : IntelliSense surligne les erreurs de code potentielles en temps rĂ©el ;

    • la navigation rapide : IntelliSense vous permet de naviguer rapidement Ă  travers les diffĂ©rentes parties du code. 

  • Cypress Helper : Plusieurs commandes et helpers pour les tests avec Cypress.

  • Cypress Snippets : Raccourcis utiles (dernier commit en 2018). Par exemple : cy.contains(''); sans snippet, devient cycon(‘’) avec snippet, ce qui permet de coder plus rapidement.

  • Cypress Snippets (voir l'encart ci-dessous) : Cette extension inclut les snippets Cypress les plus rĂ©cents et les plus utilisĂ©s.

  • Open Cypress : Permet d’ouvrir les spĂ©cifications Cypress et les blocks it() directement dans VSCode.

  • Test Utils : Ajoute ou supprime facilement .only ou .skip avec les raccourcis clavier ou la palette de commande.

Configurez Cypress

Une fois que Cypress est installé, la commande  npx cypress open  dans VSCode initialise Cypress pour votre projet. Cela crée un répertoire de configuration et d'autres fichiers nécessaires pour exécuter les tests.

Une fenĂȘtre s’ouvre :

Écran d'accueil dans Cypress
Écran d'accueil dans Cypress

Bienvenue dans Cypress !

Cypress propose deux types de tests : E2E et Component, ou composant.

E2E (End-2-End)

Composant

On peut naviguer sur le site Ă  tester par URL.

On peut importer des composants grĂące Ă  cy.mount.

Teste les flux et les fonctionnalités sur différentes pages.

Teste les composants individuels d’un site de maniĂšre isolĂ©e.

Nous allons configurer les tests de type E2E.

ExĂ©cutez votre premier test d’exemple E2E

1. Cliquez sur le bouton E2E Testing. Une fenĂȘtre similaire Ă  celle-ci apparaĂźt : 

Capture d'écran montrant la liste des fichiers de configuration dans Cypress
Fichiers de configuration dans Cypress

Cypress va ajouter ces quatre fichiers de configuration dans l’architecture de votre projet.

2. Cliquez sur le bouton Continue. 

Une fois la configuration de l’environnement terminĂ©e, cette fenĂȘtre apparaĂźt :

Capture d'écran montrant la liste des navigateurs disponibles dans Cypress
Sélection du navigateur dans Cypress

Sélectionnez votre navigateur préféré. Pour ce cours, nous utiliserons Chrome.

3. SĂ©lectionnez Scaffold example specs. Il s’agit d’un ensemble de spĂ©cifications de tests d'exemple : 

Capture d'écran montrant le choix entre des specs d'exemple ou une nouvelle spec au moment de créer une spec
Création de la premiÚre spec dans Cypress

Dans Cypress, vous voyez Ă  prĂ©sent tous les tests d’exemple.

Capture d'écran montrant la liste des tests d'exemple dans Cypress
Liste des tests d'exemple dans Cypress

Ces fichiers d'exemples, sur lesquels nous reviendrons un peu plus loin, sont fournis pour vous aider à démarrer rapidement avec l'écriture de vos tests. Ils illustrent aussi les fonctionnalités clés du framework.

Les spécifications d'exemples couvrent différents aspects du test, tels que :

  • Les interactions avec des Ă©lĂ©ments HTML : Par exemple, comment cliquer sur un bouton, saisir du texte dans un champ de saisie, valider des Ă©lĂ©ments de formulaire, etc.

  • La navigation dans l'application : Comment accĂ©der Ă  diffĂ©rentes pages ou sections de l'application.

  • Les validations et les assertions : Comment vĂ©rifier que certaines valeurs ou certains Ă©lĂ©ments sont prĂ©sents ou correspondent aux attentes.

  • Les tests asynchrones : Comment gĂ©rer les opĂ©rations asynchrones comme les requĂȘtes HTTP ou les dĂ©lais d'attente.

Vous pouvez donc vous baser sur ces fichiers d’exemples pour rĂ©diger vos propres tests.

Lors de l’installation, Cypress a créé des dossiers dans VSCode. Sans fermer l’interface graphique de Cypress, retournez dans VSCode. Vous devez avoir une architecture similaire Ă  celle-ci :

Capture d'écran montrant la liste des dossiers du projet tech and buy dans VSCode
Liste des dossiers du projet Tech&Buy dans VSCode

Trois dossiers sont apparus (e2e, fixtures, support). On y retrouvera trois des quatre fichiers de configuration installés auparavant. Le quatriÚme fichier,  cypress.config.js, apparaßt quant à lui dans le dossier Cypress.

Nous nous pencherons sur les trois dossiers plus tard, mais regardons d’abord ce que le fichier cypress.config.js contient : 

const { defineConfig } = require("cypress");

module.exports = defineConfig({
  e2e: {
    setupNodeEvents(on, config) {
      // implement node event listeners here
    },
  },
});

C’est dans ce fichier que vous allez spĂ©cifier vos configurations.

4. Maintenant, retournez dans l’interface graphique de Cypress et exĂ©cutez un des tests d’exemple de Cypress, en cliquant sur Navigation : 

Capture d'écran de navigation dans Cypress
Écran de navigation dans Cypress

Et voilĂ  ! Vous venez d’exĂ©cuter votre premier test, nous en verrons le dĂ©tail prochainement !

Retrouvez les Ă©tapes de la configuration de Cypress et de l’exĂ©cution du test d’exemple en vidĂ©o :

En résumé

  • Vous pouvez installer Cypress rapidement en utilisant la commandenpm install cypress --save-dev  .      

  • Il existe des extensions pour Cypress qui ajoutent des fonctions Ă  l’outil.

  • VsCode prend en charge entre autres les six extensions dĂ©crites pour Cypress.

  • Cypress permet Ă©galement de crĂ©er l’architecture du projet de test lors de la premiĂšre exĂ©cution, en ajoutant trois dossiers en plus du fichier de configuration.

Parfait, maintenant que vous avez installĂ© et configurĂ© Cypress et mĂȘme exĂ©cutĂ© votre premier test, nous allons pouvoir dĂ©finir les objectifs de vos tests en fonction de votre contexte !

Ever considered an OpenClassrooms diploma?
  • Up to 100% of your training program funded
  • Flexible start date
  • Career-focused projects
  • Individual mentoring
Find the training program and funding option that suits you best