For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /de/docs/web/testing.md (or send Accept: text/markdown).
Teststrategie
Verstehe, welche Aussagen deterministische Tests, Browser-, Datenbank- und Provider-Prüfungen belegen.
Einrichtung und Konfiguration
Lesen Sie vor jedem Schritt Bevor Sie beginnen und Terminal-Grundlagen. Bei diesen Anweisungen wird davon ausgegangen, dass Sie das vollständige Supastack-Monorepo in VS Code geöffnet haben. Sein Stamm package.json markiert den Repository-Stamm. In pnpm-Befehlen ist ein Arbeitsbereichspaket eine App oder ein Ordner mit gemeinsam genutztem Code. Im Produkt ist ein Arbeitsbereich der Datencontainer und die Sicherheitsgrenze eines Teams. corepack pnpm --filter ... wählt ein Paket aus dem Monorepo aus, während Befehle von seinem Stammverzeichnis aus ausgeführt werden. Wenn Sie nur einen synchronisierten Mobil- oder Desktop-Ordner geöffnet haben, enthält dieser weder das Web-Backend, Docker-Setup noch Root-Skripte: Führen Sie das Backend von diesem Monorepo oder einem erreichbaren gehosteten Server aus und verwenden Sie die eigenen Skripte des Plattformordners. Eine Umgebungsvariable ist eine benannte Einstellung, die in einer lokalen .env-Datei oder Ihrem Hosting-Dashboard gespeichert ist; Starten Sie die entsprechende App neu, nachdem Sie sie geändert haben, und halten Sie Servergeheimnisse von den Werten NEXT_PUBLIC_ und EXPO_PUBLIC_ fern.
1. Öffnen Sie die Datei „repository-root package.json“, um die Prüfbefehle anzuzeigen.
2. Führen Sie in diesem Stammordner „corepack pnpm test“ für automatisierte Unit-Tests und dann „corepack pnpm --filter @supastack/web typecheck“ für Web-TypeScript-Prüfungen aus.
3. Um das Browserverhalten zu ermitteln, starten Sie die Web-App und führen Sie corepack pnpm test:e2e aus. Erwartet: Jeder Befehl meldet sein eigenes Ergebnis; Ein Komponententest beweist nicht, dass eine echte Datenbank, ein Zahlungsanbieter, ein E-Mail-Dienst oder ein Telefon funktioniert.
Die Standardtestsuite verwendet deterministische Fake-/Lokaladapter. Browsertests decken Benutzerinteraktionen ab; Datenbankabnahme und Smoke-Tests für externe Provider sind separate Prüfschranken. Führe vor einer Ausweitung des Umfangs die für das geänderte Verhalten passenden Prüfungen aus.
corepack pnpm test
corepack pnpm check
corepack pnpm build
corepack pnpm test:e2e
corepack pnpm test:e2e:productionBefehle zum Kopieren
Befolgen Sie die Kommentare, um zu sehen, in welchem Ordner ein Befehl ausgeführt wird. Wenn zwei Terminals gekennzeichnet sind, öffnen Sie zwei Terminalfenster und lassen Sie den ersten Befehl laufen, während Sie den zweiten verwenden.
corepack pnpm test
corepack pnpm --filter @supastack/web typecheck
corepack pnpm test:e2eImplementierungsablauf
Schreibe bei Verhaltensänderungen zuerst einen fehlschlagenden Abnahmetest. Prüfe erfolgreichen Zugriff zusammen mit abgewiesenen anonymen und Workspace-übergreifenden Anfragen. Bei Formularen und Aufgabenabläufen teste neben dem Erfolgsweg auch Lade-, Fehler- und Wiederherstellungsverhalten.
Eine abgefangene Browserantwort beweist, dass die Oberfläche auf diese Testvorgabe reagiert. Sie beweist weder persistente Authentifizierung noch Zahlungsabwicklung, Provider-Zustellung oder einen Callback auf einem physischen Gerät.
Überprüfung und Fehlerbehebung
Meldet ein Datenbanktest, dass er übersprungen wurde, richten Sie zuerst seine isolierte Testdatenbank ein, bevor Sie Datenbankabdeckung angeben. Ein Web-Tab auf Port 3001 gehört zum separaten Server apps/docs; die Web-App des Kits startet auf Port 3000. Scheitert Playwright beim ersten Lauf unter Windows, warten Sie das Ende der Browserinstallation ab und wiederholen Sie den fehlgeschlagenen Befehl. Deaktivieren Sie dafür niemals den systemweiten Schutz.
Wenn ein datenbankgebundener Test übersprungen wird, richte erst die isolierte Testdatenbank ein, bevor du diesen Prüfschritt als bestanden meldest. Wenn ein Browser-Runner bestandene Assertions ausgibt, aber beim Aufräumen hängen bleibt, nenne beides; ein festhängender Prozess ist kein sauberer Erfolg des Befehls.
Unter Windows kann es bei der ersten Browserausführung zu einer Zeitüberschreitung kommen, während Defender neu installierte Playwright-Browser oder -Abhängigkeiten scannt. Lassen Sie die Installation abschließen, führen Sie die fehlgeschlagene Suite erneut mit corepack pnpm test:e2e oder corepack pnpm test:e2e:production aus und überprüfen Sie deren Ablaufverfolgung und Defender-Schutzverlauf, wenn sie erneut fehlschlägt. Lassen Sie den systemweiten Schutz aktiviert.
Die lokale Browser-Suite besitzt Port 3100 und weigert sich, einen dort bereits lauschenden Prozess wiederzuverwenden. Legen Sie PLAYWRIGHT_PORT vor corepack pnpm test:e2e auf einen freien Port fest, wenn eine andere App 3100 besitzt; Dies verhindert, dass Tests stillschweigend auf ein anderes Projekt abzielen.