Konfigurasi Autoload PSR-4 untuk PHPUnit: Panduan Teknis

Konfigurasi Autoload PSR-4 untuk Testing

Untuk menjalankan PHPUnit dalam proyek PHP, Anda wajib mendaftarkan namespace pengujian di bagian autoload-dev dalam file composer.json. Hal ini memastikan autoloader Composer mengenali kelas-kelas pengujian (test classes) tanpa menyertakan file tersebut ke dalam kode produksi (production build).

Struktur composer.json

Berikut adalah konfigurasi standar untuk memisahkan direktori src/ (kode aplikasi) dan tests/ (kode pengujian) menggunakan standar PSR-4:

{
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    }
}

Langkah Implementasi

  1. Edit file composer.json di root proyek Anda.
  2. Tambahkan blok autoload-dev seperti contoh di atas.
  3. Jalankan perintah composer dump-autoload di terminal untuk memperbarui file autoloader.
  4. Pastikan namespace di file test Anda sesuai dengan pemetaan direktori (misal: file di tests/Unit/ExampleTest.php memiliki namespace Tests\Unit;).
FiturAutoload (Produksi)Autoload-dev (Pengembangan)
TujuanKode aplikasi utamaUnit/Feature testing
InklusiSelalu dimuatHanya saat development
Perintahcomposer installcomposer install --dev

Troubleshooting Umum

Jika PHPUnit gagal menemukan kelas test, periksa hal berikut:

  • Dump Autoload: Apakah Anda sudah menjalankan composer dump-autoload setelah mengubah composer.json?
  • Namespace: Apakah namespace di file PHP sudah sesuai dengan struktur folder?
  • PHPUnit XML: Pastikan file phpunit.xml memiliki konfigurasi bootstrap yang mengarah ke vendor/autoload.php.