Bootstrap untuk pengujian integrasi plugin WordPress dengan PHPUnit.
composer require --dev jdgrimes/wpppb
Pertama, Anda memerlukan checkout lokal dari repo pengembangan WordPress, termasuk direktori tests
. Cara yang disarankan untuk mendapatkannya, terutama jika Anda ingin berkontribusi pada inti WordPress, adalah dengan VVV. WPPPB dibuat berdasarkan alat pengujian yang sudah disertakan dengan inti WordPress, sehingga tidak akan berfungsi tanpa alat tersebut.
Setelah Anda memiliki salinan lokal direktori tests
WordPress, Anda dapat menjalankan skrip pengaturan untuk WPPPB:
vendor/bin/wpppb-init
Jawab petunjuknya, dan Anda siap berangkat!
Pengujian Anda akan ditempatkan di direktori tests
yang akan dibuat di root proyek Anda (yaitu, di samping direktori vendor
yang ditambahkan oleh Komposer). Sumber plugin Anda (bagian yang akan di-zip dan diinstal di situs WordPress) diharapkan berada di direktori src
di samping keduanya, dan bukan di root proyek Anda itu sendiri. Contoh struktur file akan terlihat seperti ini:
- src/
- my-plugin.php
- includes/
- etc.
- tests/
- vendor/
Dengan sedikit modifikasi, Anda mungkin dapat menggunakan WPPPB dengan struktur direktori yang berbeda, namun inilah yang diharapkan secara default.
Anda dapat menjalankan pengujian PHPUnit seperti biasa:
phpunit
Anda juga dapat melakukan hal keren lainnya seperti menguji rutinitas uninstall plugin Anda.
(Perhatikan bahwa bootstrap default menggunakan autoloader PHP Komposer, yang memerlukan PHP 5.3. Lihat di sini untuk petunjuk penggunaan dengan PHP 5.2.)
Tujuan dari proyek ini adalah untuk menyediakan bootstrap bagi pengembang plugin yang ingin melakukan tes integrasi untuk plugin mereka menggunakan testsuite inti WordPress. Tujuannya bukan hanya untuk membuat hal ini lebih mudah, namun juga lebih baik, dengan menyediakan implementasi yang membuat pengujian serealistis mungkin.
Untuk tujuan ini, pemuat bekerja dengan mengaktifkan plugin dari jarak jauh, dan membiarkan WordPress memuatnya seperti biasa. Ini memberikan pengujian yang lebih realistis daripada memasukkan dan mengaktifkan plugin secara manual pada tindakan muplugins_loaded
, seperti yang biasanya dilakukan.
Kode proyek ini disediakan di bawah lisensi MIT.