Pengertian PHPUnit Group Tests
PHPUnit Group Tests adalah fitur yang memungkinkan pengembang untuk mengelompokkan unit test ke dalam kategori tertentu menggunakan anotasi @group. Dengan fitur ini, Anda dapat menjalankan subset pengujian spesifik tanpa harus mengeksekusi seluruh rangkaian test suite, yang sangat krusial untuk efisiensi waktu dalam pengembangan aplikasi skala besar.
Implementasi Anotasi @group
Untuk menggunakan fitur ini, Anda cukup menambahkan anotasi @group di atas kelas pengujian atau metode pengujian tertentu di dalam file PHP Anda. Berikut adalah contoh implementasi teknisnya:
/**
* @group database
*/
class UserTest extends TestCase
{
/**
* @group integration
*/
public function testUserCanBeSaved()
{
// Logika pengujian
}
}Cara Menjalankan Group Tests via CLI
Setelah memberikan label pada test Anda, gunakan perintah berikut di terminal untuk menjalankan grup yang diinginkan:
# Menjalankan grup spesifik
./vendor/bin/phpunit --group database
# Menjalankan beberapa grup sekaligus
./vendor/bin/phpunit --group database,integration
# Mengecualikan grup tertentu
./vendor/bin/phpunit --exclude-group slow| Perintah | Fungsi |
|---|---|
| --group | Menjalankan test yang memiliki anotasi grup tertentu |
| --exclude-group | Melewati test yang memiliki anotasi grup tertentu |
| --list-groups | Melihat daftar semua grup yang tersedia di project |
Strategi Pengelompokan yang Efektif
Pengelompokan yang terstruktur membantu menjaga alur kerja CI/CD tetap cepat. Berikut adalah rekomendasi kategori grup yang umum digunakan dalam pengembangan profesional:
- unit: Untuk pengujian logika bisnis murni yang tidak bergantung pada eksternal.
- integration: Untuk pengujian yang melibatkan database, API pihak ketiga, atau sistem file.
- slow: Untuk pengujian yang memakan waktu eksekusi lama (misalnya pengujian performa).
- smoke: Untuk pengujian kritis yang harus lolos sebelum deployment.
Tips Troubleshooting
Jika grup tidak terdeteksi, pastikan hal-hal berikut:
- Pastikan anotasi
@groupditulis dengan benar di dalam DocBlock (perhatikan tanda bintang dan format komentar). - Jalankan perintah
./vendor/bin/phpunit --list-groupsuntuk memastikan PHPUnit telah memindai file test Anda dengan benar. - Periksa apakah file test Anda sudah terdaftar di dalam
phpunit.xmlatau berada di direktori yang benar sesuai konfigurasitestsuite.