Drupal 8 melengkapi kerangka pengujian berdasarkan Simpletest dengan PHPUnit , dan Simpletest dapat dihapus di Drupal 9.
Saya belum meningkatkan ke Drupal 8, tapi saya bertanya-tanya bagaimana saya bisa menulis tes yang ada di PHPUnit (untuk menindaklanjuti dengan tren) untuk Drupal 7, sebagai gantinya di Simpletest?
Apakah ada metode atau modul untuk mengintegrasikan PHPUnit dengan Drupal 7?
Ada beberapa seperti phpunit atau pemabuk , tetapi mereka bukan untuk Drupal 7.
Jawaban:
Anda bisa menjalankan tes PHPUnit dengan menjalankan Drupal bootstrap di dalam setiap file pengujian Anda. Ini tidak ideal, tetapi berhasil.
sumber
PHPUnit menyediakan API yang bagus untuk membangun objek sedangkan yang paling sederhana dari Drupal tidak. Ada satu perpustakaan yang tersedia di intinya untuk mengintegrasikan PHPUnit dengan Drupal 7 .
Untuk mengeksekusi skrip-skrip tersebut, Anda perlu checkout repositori inti ini . Untuk menjalankan Tes Unit di baris perintah cukup buka situs Drupal (mis.
<DRUPAL_ROOT>/sites/default
) Dan gunakan dphpunit.bash sama seperti Anda akan menggunakan perintah phpunit.Script terdiri dari 3 file:
Sumber: http://devblog.more-onion.com/content/writing-unit-tests-drupal-7
bootstrap.inc.php
dphpunit.bash
drun-phpunit.php
Ada satu lagi perpustakaan yang tersedia untuk integrasi PHPUnit dengan Drupal 7: https://github.com/sebastianbergmann/phpunit
Informasi lebih lanjut tentang skrip ini dapat diperiksa di sini: http://thomaslattimore.com/blog/using-phpunit-with-drupal-7
sumber
Ada solusi dengan file konfigurasi.
Intisari: https://gist.github.com/permanovd/cb9c02920c49a29c97653f4f697147b1
Itu saja. Sekarang Anda dapat memulai tes dengan beberapa cara.
1. CLI
phpunit -c phpunit.xml.dist QuestionValidationValueOptionsInputTest /yoursite.dir/public_html/profiles/standard/modules/some_module/tests/QuestionValidationTest.php
dimana:
2. IDE (phpstorm)
Anda harus menambahkan konfigurasi uji coba
Dan tidak perlu menyertakan kode bootstrap drupal ke dalam setiap tes.
Catatan
Anda mungkin memiliki masalah dengan tes karena versi php yang salah dari lingkungan Anda.
Bacaan lebih lanjut:
https://phpunit.de/manual/current/en/organizing-tests.html
sumber