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