Proje: Okul Platform · Hub: Okul Platform — Conventions
Test Ortamı (phpunit.xml)
Önemli test env değerleri:
APP_ENV=testing
BCRYPT_ROUNDS=4 → Hız için düşük (üretimde daha yüksek)
CACHE_STORE=array → In-memory cache
QUEUE_CONNECTION=sync → Queue'lar sync çalışır (test içinde)
SESSION_DRIVER=array
MAIL_MAILER=array → E-postalar gönderilmez
TELESCOPE_ENABLED=false
PULSE_ENABLED=false
SMS_PROVIDER=null → SMS gönderilmez
CONSUMER_WEB=web → Consumer token test değerleri
CONSUMER_CRM=crm
CONSUMER_CUSTOMER=customer
Önemli Notlar
Veritabanı
SQLite yorumu comment’li (<!-- <env name="DB_CONNECTION" value="sqlite"/> -->).
Gerçek MySQL kullanılıyor testlerde (DatabaseTransactions ile rollback).
TestCase’deki excludeTestData macro SQLite’da no-op yapılmıştı — gerçek DB’de aktif.
Queue
QUEUE_CONNECTION=sync — Job’lar test içinde anında çalışır, Horizon beklemek gerekmez.
SMS
SMS_PROVIDER=null — SMS gönderilmez (Infobip’e istek atmaz).
Coverage Dışı Tutulan Dizinler
app/Console/Commands/Make/
app/Overrides/
app/Providers/
app/Interfaces/
app/Repositories/Interfaces/ → Interface'ler coverage dışı
app/Swagger/
Authenticate.php, TrustHosts.php, RedirectIfAuthenticated.php
Test Suite’ler
- Unit:
tests/Unit/— Bağımsız birim testler - Feature:
tests/Feature/— HTTP istek testleri
Related
- api-testing-conventions — Test yapısı ve TestCase metodları