Skip to content

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 test

Was 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 --parallel

Frisches Setup erzwingen

bash
npm run test:fresh

Was 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 --fresh

Nur Setup (ohne Tests)

bash
npm run test:setup

Was 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 --fresh

Spezifische Test-Suites

Nur Unit-Tests

bash
npm run test:unit

Was 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=Unit

Nur Feature-Tests

bash
npm run test:feature

Was 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=Feature

Nur Modul-Tests

bash
npm run test:modules

Was 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 --parallel

Gefilterte 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-parallel

Was 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:run

Entscheidungshilfe

Wann welchen Befehl?

SituationBefehl
Normale Entwicklungnpm run test
Nach Schema-Änderung (Migration)npm run test:fresh
Nur Setup für manuelles Testennpm run test:setup
Nur eine spezifische Unit testennpm run test:unit
Debugging mit sequenzieller Ausführungnpm run test:no-parallel
Suche nach Tests mit bestimmtem Namennpm run test:filter -- "Name"
CI/CD Pipelinenpm run test:fresh
Nur Modul-spezifische Testsnpm 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 --parallel

Bei erstem Fehler abbrechen

bash
php artisan test:run --stop-on-failure

Spezifische Connection

bash
php artisan test:run --connection=testing_sqlite

Kombination mehrerer Optionen

bash
php artisan test:run --testsuite=Feature --filter="Uebung" --stop-on-failure

Typische 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 test

Feature entwickeln

bash
# 1. Tests schreiben
# 2. Feature implementieren
npm run test:filter -- "NeuesFeature"

# 3. Bei Erfolg: Alle Tests
npm run test

Bug 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 test

Schema 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:fresh

Nur 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 --fresh

Tests hängen bei Parallelisierung

Lösung:

bash
# Sequenziell ausführen
npm run test:no-parallel

Datenbank-State scheint inkorrekt

Lösung:

bash
# Frisches Setup erzwingen
npm run test:fresh

Performance-Tipps

Parallele Ausführung maximieren

Alle Haupt-Befehle nutzen standardmäßig --parallel:

  • npm run test
  • npm run test:fresh
  • npm run test:modules
  • npm 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-Overhead

Zeitersparnis: 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