Alat pengujian baris perintah PHPUnit dipanggil melalui perintah phpunit. Kode berikut menunjukkan cara menjalankan pengujian melalui alat pengujian baris perintah PHPUnit.
phpunitArrayTest
PHPUnit 2.3.0 oleh Sebastian Bergmann.
Waktu: 0,067288
OK (2 pengujian)
Untuk setiap pengujian, alat pengujian baris perintah PHPUnit mencetak karakter yang menunjukkan proses:
· Tes yang berhasil mencetak ".".
·Saat menjalankan metode pengujian, terjadi kegagalan pernyataan dan "F" dicetak.
·Saat menjalankan metode pengujian, terjadi kesalahan dan "E" dicetak.
·Tes belum selesai atau tes tidak mencetak "I" (lihat bab "Tes yang Belum Selesai" di akhir buku ini).
PHPUnit dapat membedakan antara kegagalan dan kesalahan. Kegagalan adalah pelanggaran pernyataan PHPUnit, dan kesalahan adalah pengecualian yang tidak terduga atau kesalahan PHP. Terkadang pembedaan ini berguna karena kesalahan lebih mudah diperbaiki daripada kegagalan. Jika Anda memiliki daftar masalah yang panjang, sebaiknya selesaikan semua kesalahan terlebih dahulu, lalu lihat apakah masih ada kegagalan.
Mari kita lihat beberapa opsi alat pengujian baris perintah kode di bawah ini:
phpunit --help
PHPUnit 2.3.0 oleh Sebastian Bergmann.
Penggunaan: phpunit [beralih] UnitTest [UnitTest.php]
--coverage-data <file> Tulis data cakupan kode dalam format mentah ke file.
--coverage-html <file> Tulis data cakupan kode dalam format HTML ke file.
--coverage-text <file> Tulis data cakupan kode dalam format teks ke file.
--testdox-html <file> Tulis dokumentasi tangkas dalam format HTML ke file.
--testdox-text <file> Tulis dokumentasi tangkas dalam format Teks ke file.
--log-xml <file> Catat kemajuan pengujian dalam format XML ke file.
--loader <loader> Implementasi TestSuiteLoader yang akan digunakan.
--skeleton Menghasilkan kerangka kelas UnitTest untuk Unit di Unit.php.
--tunggu Menunggu penekanan tombol setelah setiap pengujian.
--help Mencetak informasi penggunaan ini.
--version Mencetak versi dan keluar.
phpunit UnitTest
menjalankan tes yang disediakan oleh kelas UnitTest, yang harus didefinisikan dalam file sumber UnitTest.php.
Kelas UnitTest harus mewarisi kelas PHPUnit2_Framework_TestCase, atau menyediakan rangkaian metode statis publik dan mengembalikan kelas objek PHPUnit2_Framework_Test (misalnya, turunan dari kelas PHPUnit2_Framework_TestSuite)
phpunit UnitTest UnitTest.php
menjalankan pengujian yang disediakan oleh kelas UnitTest, yang didefinisikan dalam perintah Dalam file sumber yang ditentukan (UnitTest.php).
--coverage-data, --coverage-html, dan --coverage-text
mengontrol analisis dan pengumpulan informasi cakupan kode untuk menjalankan pengujian (lihat bagian Analisis Cakupan Kode di akhir buku ini)
--testdox-html dan --testdox- text
menghasilkan dokumentasi tangkas untuk menjalankan pengujian dalam format HTML atau teks biasa (lihat bab "Penggunaan pengujian lainnya" di akhir buku ini)
--log-xml
menghasilkan file log dalam format XML untuk menjalankan pengujian.
Contoh berikutnya menunjukkan file log XML yang dihasilkan untuk pengujian di ArrayTest.
<?xml versi="1.0" pengkodean="UTF-8"?>
<testsuite>
<testsuite name="ArrayTest" tes="2" kegagalan="0" error="0" time="0,020026">
<nama kasus uji="testNewArrayIsEmpty" class="ArrayTest" time="0.014449"/>
<nama kasus uji="testArrayContainsAnElement" class="ArrayTest" time="0,005577"/>
</testsuite>
</testsuites>
File log XML berikut dibuat untuk dua pengujian kelas pengujian bernama FailureErrorTest, satu adalah testFailure dan yang lainnya adalah testError. Ini menunjukkan bagaimana kegagalan dan kesalahan direpresentasikan secara terpisah.
<?xml versi="1.0" pengkodean="UTF-8"?>
<testsuite>
<testsuite name="FailureErrorTest" tes="2" kegagalan="1" error="1" time="0.013603">
<nama kasus tes="testFailure" class="FailureErrorTest" time="0.011872">
<pesan kegagalan="" type="PHPUnit2_Framework_AssertionFailedError"></failure>
</kasus uji>
<nama kasus tes="testError" class="FailureErrorTest" time="0.001731">
<pesan kesalahan="" type="Pengecualian"></error>
</kasus uji>
</testsuite>
</testsuite>
--loader
menentukan pemuat rangkaian pengujian yang akan digunakan.
Pemuat rangkaian pengujian standar mencari file sumber di direktori kerja saat ini dan di jalur yang ditentukan oleh arahan konfigurasi include_path PHP. Menurut aturan penamaan PEAR, file sumber dipetakan ke nama kelas dalam bentuk Project_Package_Class adalah Project/Package/Class.php.
--skeleton
menghasilkan kerangka untuk kelas kasus uji yang disebut UnitTest (dalam file UnitTest.php) untuk kelas Unit (dalam file Unit.php). Untuk setiap metode kelas asli, kasus uji yang belum selesai disediakan di kelas kasus uji yang dihasilkan (lihat bagian "Tes yang Belum Selesai" di akhir buku ini).
Contoh berikut menunjukkan cara membuat kelas uji kerangka untuk kelas bernama Sampel.
phpunit --skeleton Contoh
PHPUnit 2.3.0 oleh Sebastian Bergmann.
Menulis kerangka kelas tes untuk Sampel
SampleTest.php.
Uji Sampel phpunit
PHPUnit 2.3.0 oleh Sebastian Bergmann.
SAYA
Waktu: 0,007268
Ada 1 kasus uji yang tidak lengkap:
1) ujiSampleMethod(Uji Sampel)
Oke, tapi kasus uji tidak lengkap!!!
Pengujian dijalankan: 1, kasus pengujian tidak lengkap: 1.
Saat Anda menulis pengujian untuk kode yang ada, Anda harus mengulangi banyak cuplikan kode yang sama, seperti:
public function testSampleMethod() {}
PHPUnit bisa membantu Anda menganalisis kode yang ada dan menghasilkan A kerangka kerja untuk kelas kasus uji.
--tunggu
Di akhir setiap tes, tunggu penekanan tombol. Hal ini berguna terutama jika Anda menjalankan tes di jendela di mana hanya tes yang berjalan sepanjang waktu.
Tip: Ketika ada kesalahan sintaksis PHP dalam kode yang diuji, pengujian antarmuka teks akan langsung keluar tanpa mengeluarkan pesan kesalahan apa pun. Pemuat rangkaian pengujian standar memeriksa file sumber rangkaian pengujian untuk menemukan kesalahan sintaksis PHP, namun, pemuat ini tidak memeriksa file sumber yang disertakan dalam rangkaian pengujian untuk menemukan kesalahan sintaksis. Versi PHPUnit yang akan datang akan mengatasi masalah ini menggunakan kelas interpreter PHP sandbox.