Appearance
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/pestWeitere 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-Paneladmin.- Datenbank: SQLite im Speicher (
phpunit.xmlerzwingtDB_CONNECTION=sqlite,DB_DATABASE=:memory:). Cache, Mail, Session alsarray, Queuesync. - Hilfsfunktionen in
tests/Pest.php, u. a.actingAsSuperAdmin()undmakeMedia().
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
| Datei | Prüft |
|---|---|
tests/Feature/Api/PublicApiTest.php | Sichtbarkeit und Format der öffentlichen API |
tests/Feature/Api/ApiErrorFormatTest.php | Fehlerformat, Request-ID |
tests/Feature/ActivityLogTest.php | Aktivitä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 MeinUnitTestTests werden nicht ohne Absprache gelöscht.