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
- Edit file
composer.jsondi root proyek Anda. - Tambahkan blok
autoload-devseperti contoh di atas. - Jalankan perintah
composer dump-autoloaddi terminal untuk memperbarui file autoloader. - Pastikan namespace di file test Anda sesuai dengan pemetaan direktori (misal: file di
tests/Unit/ExampleTest.phpmemilikinamespace Tests\Unit;).
| Fitur | Autoload (Produksi) | Autoload-dev (Pengembangan) |
|---|---|---|
| Tujuan | Kode aplikasi utama | Unit/Feature testing |
| Inklusi | Selalu dimuat | Hanya saat development |
| Perintah | composer install | composer install --dev |
Troubleshooting Umum
Jika PHPUnit gagal menemukan kelas test, periksa hal berikut:
- Dump Autoload: Apakah Anda sudah menjalankan
composer dump-autoloadsetelah mengubahcomposer.json? - Namespace: Apakah namespace di file PHP sudah sesuai dengan struktur folder?
- PHPUnit XML: Pastikan file
phpunit.xmlmemiliki konfigurasibootstrapyang mengarah kevendor/autoload.php.
🔍 Orang Lain Juga Mencari Ini
Composer Autoload Psr-4
Phpunit Configuration Php
Composer Dump-autoload Command
Php Unit Testing Best Practices
Psr-4 Namespace Mapping
Phpunit.xml Bootstrap File
Composer Dev Dependencies
Php Testing Framework Setup
Autoload-dev Vs Autoload
Php Namespace Structure
Phpunit Autoloading Issues
Composer.json Structure
Unit Testing In Php
Php Autoloader Optimization
Testing Directory Structure Php