Comment configurer Cypress avec Next.js
Cypress est un outil d'exécution de tests utilisé pour les tests End-to-End (E2E) et les tests de composants. Cette page vous montrera comment configurer Cypress avec Next.js et écrire vos premiers tests.
Avertissement :
- Les versions de Cypress inférieures à 13.6.3 ne prennent pas en charge TypeScript version 5 avec
moduleResolution:"bundler"
. Cependant, ce problème a été résolu dans Cypress version 13.6.3 et ultérieures. cypress v13.6.3
Configuration manuelle
Pour configurer Cypress manuellement, installez cypress
comme dépendance de développement :
Ajoutez la commande open
de Cypress au champ scripts
du package.json
:
Exécutez Cypress pour la première fois pour ouvrir la suite de tests Cypress :
Vous pouvez choisir de configurer les tests E2E et/ou les tests de composants. La sélection de l'une de ces options créera automatiquement un fichier cypress.config.js
et un dossier cypress
dans votre projet.
Création de votre premier test E2E Cypress
Assurez-vous que votre fichier cypress.config
a la configuration suivante :
Ensuite, créez deux nouveaux fichiers Next.js :
Ajoutez un test pour vérifier que votre navigation fonctionne correctement :
Exécution des tests E2E
Cypress simule un utilisateur naviguant dans votre application, ce qui nécessite que votre serveur Next.js soit en cours d'exécution. Nous recommandons d'exécuter vos tests sur votre code de production pour mieux refléter le comportement de votre application.
Exécutez npm run build && npm run start
pour construire votre application Next.js, puis exécutez npm run cypress:open
dans une autre fenêtre de terminal pour démarrer Cypress et exécuter votre suite de tests E2E.
Bon à savoir :
- Vous pouvez utiliser
cy.visit("/")
au lieu decy.visit("http://localhost:3000/")
en ajoutantbaseUrl: 'http://localhost:3000'
au fichier de configurationcypress.config.js
.- Alternativement, vous pouvez installer le package
start-server-and-test
pour exécuter le serveur de production Next.js conjointement avec Cypress. Après l'installation, ajoutez"test": "start-server-and-test start http://localhost:3000 cypress"
au champscripts
de votrepackage.json
. N'oubliez pas de reconstruire votre application après de nouveaux changements.
Création de votre premier test de composant Cypress
Les tests de composants construisent et montent un composant spécifique sans avoir à assembler toute votre application ou démarrer un serveur.
Sélectionnez Component Testing dans l'application Cypress, puis choisissez Next.js comme framework front-end. Un dossier cypress/component
sera créé dans votre projet, et un fichier cypress.config.js
sera mis à jour pour activer les tests de composants.
Assurez-vous que votre fichier cypress.config
a la configuration suivante :
En supposant les mêmes composants que dans la section précédente, ajoutez un test pour valider qu'un composant affiche le résultat attendu :
Bon à savoir :
- Cypress ne prend actuellement pas en charge les tests de composants pour les Server Components
async
. Nous recommandons d'utiliser les tests E2E.- Comme les tests de composants ne nécessitent pas de serveur Next.js, les fonctionnalités comme
<Image />
qui dépendent d'un serveur disponible peuvent ne pas fonctionner directement.
Exécution des tests de composants
Exécutez npm run cypress:open
dans votre terminal pour démarrer Cypress et exécuter votre suite de tests de composants.
Intégration continue (CI)
En plus des tests interactifs, vous pouvez également exécuter Cypress en mode headless avec la commande cypress run
, qui est mieux adaptée aux environnements CI :
Vous pouvez en apprendre plus sur Cypress et l'intégration continue à partir de ces ressources :