• 8 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 22/11/2023

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 !

Exemple de certificat de réussite
Exemple de certificat de réussite