Skip to content

Tests ​

Das PIM (admin/) testet mit Pest (auf PHPUnit 11).

Ausführen ​

bash
cd admin
ddev exec php artisan test --compact                      # alle
ddev exec php artisan test --compact --filter=ApiErrorFormat
ddev exec php artisan test --compact tests/Feature/Api    # ein Ordner
ddev exec composer test                                   # dasselbe über ./vendor/bin/pest

Weitere Prüfungen:

bash
ddev exec composer lint          # Pint, formatiert
ddev exec composer lint:check    # Pint, nur prüfen
ddev exec composer analyse       # PHPStan (Larastan)

Aufbau ​

  • tests/Unit: ohne Laravel-Anwendung.
  • tests/Feature: mit Anwendung, RefreshDatabase, Filament-Panel admin.
  • Datenbank: SQLite im Speicher (phpunit.xml erzwingt DB_CONNECTION=sqlite, DB_DATABASE=:memory:). Cache, Mail, Session als array, Queue sync.
  • Hilfsfunktionen in tests/Pest.php, u. a. actingAsSuperAdmin() und makeMedia().

Weil SQLite läuft, nicht MariaDB, fallen datenbankspezifische Unterschiede (JSON-Abfragen, Sortierung) lokal nicht immer auf. Die CI testet deshalb mit einem MariaDB-Dienst.

Wichtige Testdateien ​

DateiPrüft
tests/Feature/Api/PublicApiTest.phpSichtbarkeit und Format der öffentlichen API
tests/Feature/Api/ApiErrorFormatTest.phpFehlerformat, Request-ID
tests/Feature/ActivityLogTest.phpAktivitätsprotokoll und Rückgängig

CI ​

.woodpecker.yml im Wurzelverzeichnis. Für admin: Pint --test, PHPStan, pest --ci mit MariaDB-Dienst, danach der Bun-Build. Andere Projekte: Bun-Builds, für Kirby composer validate.

Neue Tests ​

bash
ddev exec php artisan make:test --pest Api/MeinTest
ddev exec php artisan make:test --pest --unit MeinUnitTest

Tests werden nicht ohne Absprache gelöscht.