Einrichtung von Cypress mit Next.js
Cypress ist ein Testrunner für End-to-End (E2E)- und Komponententests. Diese Seite zeigt Ihnen, wie Sie Cypress mit Next.js einrichten und Ihre ersten Tests schreiben.
Warnung:
- Cypress-Versionen unter 13.6.3 unterstützen TypeScript Version 5 mit
moduleResolution:"bundler"
nicht. Dieses Problem wurde jedoch in Cypress Version 13.6.3 und höher behoben. cypress v13.6.3
Manuelle Einrichtung
Um Cypress manuell einzurichten, installieren Sie cypress
als Dev-Abhängigkeit:
Fügen Sie den Cypress open
-Befehl zum package.json
-Scripts-Feld hinzu:
Führen Sie Cypress zum ersten Mal aus, um die Cypress-Testsuite zu öffnen:
Sie können E2E-Tests und/oder Komponententests konfigurieren. Die Auswahl einer dieser Optionen erstellt automatisch eine cypress.config.js
-Datei und einen cypress
-Ordner in Ihrem Projekt.
Erstellen Ihres ersten Cypress E2E-Tests
Stellen Sie sicher, dass Ihre cypress.config
-Datei die folgende Konfiguration enthält:
Erstellen Sie dann zwei neue Next.js-Dateien:
Fügen Sie einen Test hinzu, um zu überprüfen, ob Ihre Navigation korrekt funktioniert:
Ausführen von E2E-Tests
Cypress simuliert einen Benutzer, der durch Ihre Anwendung navigiert. Dafür muss Ihr Next.js-Server laufen. Wir empfehlen, Ihre Tests gegen Ihren Produktionscode auszuführen, um das Verhalten Ihrer Anwendung besser nachzubilden.
Führen Sie npm run build && npm run start
aus, um Ihre Next.js-Anwendung zu erstellen, und dann npm run cypress:open
in einem anderen Terminalfenster, um Cypress zu starten und Ihre E2E-Testsuite auszuführen.
Gut zu wissen:
- Sie können
cy.visit("/")
anstelle voncy.visit("http://localhost:3000/")
verwenden, indem SiebaseUrl: 'http://localhost:3000'
zurcypress.config.js
-Konfigurationsdatei hinzufügen.- Alternativ können Sie das Paket
start-server-and-test
installieren, um den Next.js-Produktionsserver zusammen mit Cypress auszuführen. Fügen Sie nach der Installation"test": "start-server-and-test start http://localhost:3000 cypress"
zumpackage.json
-Scripts-Feld hinzu. Denken Sie daran, Ihre Anwendung nach neuen Änderungen neu zu erstellen.
Erstellen Ihres ersten Cypress-Komponententests
Komponententests erstellen und mounten eine bestimmte Komponente, ohne Ihre gesamte Anwendung bündeln oder einen Server starten zu müssen.
Wählen Sie Komponententests in der Cypress-App aus und dann Next.js als Ihr Frontend-Framework. Ein cypress/component
-Ordner wird in Ihrem Projekt erstellt, und eine cypress.config.js
-Datei wird aktualisiert, um Komponententests zu ermöglichen.
Stellen Sie sicher, dass Ihre cypress.config
-Datei die folgende Konfiguration enthält:
Angenommen, die gleichen Komponenten wie im vorherigen Abschnitt, fügen Sie einen Test hinzu, um zu validieren, dass eine Komponente die erwartete Ausgabe rendert:
Gut zu wissen:
- Cypress unterstützt derzeit keine Komponententests für
async
Server Components. Wir empfehlen die Verwendung von E2E-Tests.- Da Komponententests keinen Next.js-Server benötigen, funktionieren Funktionen wie
<Image />
, die auf einen verfügbaren Server angewiesen sind, möglicherweise nicht ohne weiteres.
Ausführen von Komponententests
Führen Sie npm run cypress:open
in Ihrem Terminal aus, um Cypress zu starten und Ihre Komponententest-Suite auszuführen.
Continuous Integration (CI)
Zusätzlich zu interaktiven Tests können Sie Cypress auch im Headless-Modus mit dem Befehl cypress run
ausführen, der besser für CI-Umgebungen geeignet ist:
Weitere Informationen zu Cypress und Continuous Integration finden Sie in diesen Ressourcen: