NPM Test Commands - Quick Reference
Schnellübersicht aller verfügbaren Test-Befehle über NPM Scripts.
Grundlegende Befehle
Reguläre Test-Ausführung
bash
npm run testWas passiert:
- Führt alle Tests parallel aus
- Smart-Check: Prüft automatisch ob Datenbank bereit ist
- Setup nur wenn nötig (Datenbank fehlt, Schema veraltet, Base-Data fehlt, Test-Accounts fehlen)
- Schnellster Weg für reguläre Entwicklung
Entspricht:
bash
php artisan test:run --parallelFrisches Setup erzwingen
bash
npm run test:freshWas passiert:
- Baut Datenbank immer komplett neu auf
- Führt dann alle Tests parallel aus
- Keine Smart-Checks
- Verwenden nach Schema-Änderungen oder bei Datenbank-Problemen
Entspricht:
bash
php artisan test:run --parallel --freshNur Setup (ohne Tests)
bash
npm run test:setupWas passiert:
- Erstellt Test-Datenbank neu
- Führt Migrationen aus
- Importiert Base-Data
- Erstellt Test-Accounts
- Führt KEINE Tests aus
Entspricht:
bash
php artisan test:setup --freshSpezifische Test-Suites
Nur Unit-Tests
bash
npm run test:unitWas passiert:
- Führt nur Tests in
tests/Unit/aus - Kein automatisches Rollback (keine DatabaseTransactions)
- Für isolierte Tests einzelner Klassen/Methoden
Entspricht:
bash
php artisan test:run --testsuite=UnitNur Feature-Tests
bash
npm run test:featureWas passiert:
- Führt nur Tests in
tests/Feature/aus - Mit DatabaseTransactions (automatisches Rollback)
- Für Feature-Tests der Hauptanwendung (ohne Module)
Entspricht:
bash
php artisan test:run --testsuite=FeatureNur Modul-Tests
bash
npm run test:modulesWas passiert:
- Führt nur Tests in
modules/*/*/tests/aus - Parallel ausgeführt
- Alle Übungsmodule und Service-Module
Entspricht:
bash
php artisan test:run --testsuite=Modules --parallelGefilterte Ausführung
Tests mit Filter
bash
npm run test:filter -- "Suchbegriff"Was passiert:
- Führt nur Tests aus, die dem Filter entsprechen
- Filter-Matching in Test-Namen
- Parallel ausgeführt
- WICHTIG: Filter NACH
--angeben
Beispiele:
bash
npm run test:filter -- "UebungBedeutungenZuordnen"
npm run test:filter -- "kann neue Übung erstellen"
npm run test:filter -- "API"Entspricht:
bash
php artisan test:run --parallel --filter="Suchbegriff"Tests ohne Parallelisierung
bash
npm run test:no-parallelWas passiert:
- Führt alle Tests sequenziell aus
- Langsamer, aber besser für Debugging
- Verwenden bei Race Conditions oder komplexen DB-Interaktionen
Entspricht:
bash
php artisan test:runEntscheidungshilfe
Wann welchen Befehl?
| Situation | Befehl |
|---|---|
| Normale Entwicklung | npm run test |
| Nach Schema-Änderung (Migration) | npm run test:fresh |
| Nur Setup für manuelles Testen | npm run test:setup |
| Nur eine spezifische Unit testen | npm run test:unit |
| Debugging mit sequenzieller Ausführung | npm run test:no-parallel |
| Suche nach Tests mit bestimmtem Namen | npm run test:filter -- "Name" |
| CI/CD Pipeline | npm run test:fresh |
| Nur Modul-spezifische Tests | npm run test:modules |
Kombination mit direkten Artisan-Befehlen
NPM-Scripts sind Shortcuts für häufige Anwendungsfälle. Für erweiterte Optionen kann php artisan test:run direkt verwendet werden:
Mit Coverage-Report
bash
php artisan test:run --coverage --parallelBei erstem Fehler abbrechen
bash
php artisan test:run --stop-on-failureSpezifische Connection
bash
php artisan test:run --connection=testing_sqliteKombination mehrerer Optionen
bash
php artisan test:run --testsuite=Feature --filter="Uebung" --stop-on-failureTypische Workflows
Entwicklungs-Session starten
bash
# 1. Einmal Setup am Anfang
npm run test:setup
# 2. Während Entwicklung
npm run test
npm run test
# ... Code ändern ...
npm run testFeature entwickeln
bash
# 1. Tests schreiben
# 2. Feature implementieren
npm run test:filter -- "NeuesFeature"
# 3. Bei Erfolg: Alle Tests
npm run testBug fixen
bash
# 1. Reproduzierenden Test schreiben
npm run test:filter -- "BugName"
# 2. Fix implementieren
npm run test:filter -- "BugName"
# 3. Sicherstellen, dass nichts anderes kaputt ist
npm run testSchema geändert (Migration erstellt)
bash
# 1. Migration erstellen
php artisan make:migration add_field_to_table
# 2. Migration implementieren
# 3. Frisches Setup mit neuer Migration
npm run test:freshNur Modul testen (während Modul-Entwicklung)
bash
# Alle Modul-Tests
npm run test:modules
# Spezifisches Modul
php artisan test modules/Uebungen/UebungBedeutungenZuordnen/tests/
# Spezifischer Test im Modul
npm run test:filter -- "BedeutungenZuordnen"Fehlerbehandlung
"Base-Data User nicht gefunden"
Lösung:
bash
npm run test:setup"Setup fehlgeschlagen"
Debugging:
bash
# Setup manuell ausführen und Output prüfen
php artisan test:setup --freshTests hängen bei Parallelisierung
Lösung:
bash
# Sequenziell ausführen
npm run test:no-parallelDatenbank-State scheint inkorrekt
Lösung:
bash
# Frisches Setup erzwingen
npm run test:freshPerformance-Tipps
Parallele Ausführung maximieren
Alle Haupt-Befehle nutzen standardmäßig --parallel:
npm run testnpm run test:freshnpm run test:modulesnpm run test:filter
Performance-Gewinn: Typischerweise 2-4x schneller
Smart-Check nutzen
Bei normaler Entwicklung (ohne Schema-Änderungen):
bash
npm run test # Kein Setup-Overhead
npm run test # Kein Setup-Overhead
npm run test # Kein Setup-OverheadZeitersparnis: 10-30 Sekunden pro Test-Lauf
Gezieltes Filtern
Statt alle Tests zu laufen:
bash
# Langsam (alle ~100 Tests)
npm run test
# Schnell (nur relevante 5 Tests)
npm run test:filter -- "UebungBedeutungen"Weiterführende Dokumentation
- Testing Leitlinien - Best Practices und Philosophie
- TestRunCommand - Detaillierte Command-Dokumentation
- Pest-Konfiguration - Helper-Funktionen und Expectations