Peringatan
Upgrade ke CodeIgniter4 sangat disarankan.
Cara yang lebih mudah menggunakan PHPUnit dengan CodeIgniter 3.x.
Anda tidak perlu memodifikasi file inti CodeIgniter sama sekali.
Anda dapat menulis tes pengontrol dengan mudah.
Mungkin tidak ada yang tidak bisa diuji.
Didokumentasikan dengan baik.
PHP 7.3 atau lebih baru
Jika Anda menggunakan Monkey Patching, Anda harus menggunakan PHP-Parser 4.2 atau lebih baru sebagai dependensi Komposer.
CodeIgniter 3.x
Jika Anda ingin mengupgrade ke CodeIgniter4, lihat #361.
PHPUnit 9.3 atau lebih baru
Jika Anda ingin menggunakan PHPUnit 9.2 atau versi sebelumnya, silakan gunakan ci-phpunit-test 2.x.
NetBeans
Buka Project Properties > Testing > PHPUnit , centang kotak Use Custom Test Suite , dan pilih application/tests/_ci_phpunit_test/TestSuiteProvider.php
.
Lihat Ubah Log.
codeigniter/ ├── application/ │ └── tests/ │ ├── _ci_phpunit_test/ ... don't touch! files ci-phpunit-test uses │ ├── Bootstrap.php ... bootstrap file for PHPUnit │ ├── DbTestCase.php ... DbTestCase class │ ├── TestCase.php ... TestCase class │ ├── controllers/ ... put your controller tests │ ├── libraries/ ... put your library tests │ ├── mocks/ │ │ └── libraries/ ... mock libraries │ ├── models/ ... put your model tests │ └── phpunit.xml ... config file for PHPUnit └── vendor/
Unduh ci-phpunit-test
terbaru dari https://github.com/kenjis/ci-phpunit-test/releases.
Buka zip dan salin folder application/tests
ke folder application
Anda di proyek CodeIgniter.
Itu saja.
$ cd /path/ke/codeigniter/$ komposer memerlukan kenjis/ci-phpunit-test:^3.0 --dev
Dan jalankan install.php
:
$ php vendor/kenjis/ci-phpunit-test/install.php --dari-komposer
Perintah di atas selalu menimpa file yang sudah ada.
Anda harus menjalankannya di folder root proyek CodeIgniter.
Anda dapat menentukan application
dan folder public
Anda dengan argumen opsi, jika Anda menggunakan jalur folder khusus.
$ php vendor/kenjis/ci-phpunit-test/install.php -a <application_dir> -p <public_dir> -t <unittest_dir>
Jadi defaultnya adalah:
$ php vendor/kenjis/ci-phpunit-test/install.php -a aplikasi -p publik -t aplikasi/tes
Namun beberapa jalur mungkin tidak benar, dalam hal ini, harap perbaiki di tes/Bootstrap.php.
Unduh ci-phpunit-test
terbaru dari https://github.com/kenjis/ci-phpunit-test/releases.
Buka zip dan ganti folder application/tests/_ci_phpunit_test
.
Baca Perubahan Log.
$ cd /path/ke/codeigniter/$ pembaruan komposer kenjis/ci-phpunit-test
Baca Perubahan Log.
Jika Anda meningkatkan versi ci-phpunit-test
sebelumnya yang membuat direktori application/test/_ci_phpunit_test
dan sekarang ingin langsung menggunakan ci-phpunit-test
dari Composer, Anda memiliki beberapa langkah tambahan:
Hapus direktori perpustakaan pengujian lama:
$ rm -rf /jalur/ke/codeigniter/aplikasi/tes/_ci_phpunit_test
Edit file application/tests/Bootstrap.php
. Di bagian bawah bagian "setel konstanta jalur utama", tambahkan yang berikut ini:
mendefinisikan('CI_PHPUNIT_TESTPATH', meledak(DIRECTORY_SEPARATOR, [dirname(APPPATH), 'vendor', 'kenjis', 'ci-phpunit-test', 'aplikasi', 'tes', '_ci_phpunit_test'] ).DIRECTORY_SEPARATOR);
Dan ganti referensi apa pun ke __DIR__ . '/_ci_phpunit_test/
atau TESTPATH . '_ci_phpunit_test
dengan CI_PHPUNIT_TESTPATH . '
. (Jadi, misalnya, __DIR__ . '/_ci_phpunit_test/CIPHPUnitTest.php'
akan menjadi CI_PHPUNIT_TESTPATH . '/CIPHPUnitTest.php'
.)
Anda perlu menginstal PHPUnit sebelum menjalankan tes.
Jika Anda menggunakan Komposer:
$ komposer memerlukan phpunit/phpunit --dev
$ cd /path/to/codeigniter/$ vendor/bin/phpunit -c application/tests/PHPUnit 9.5.4 oleh Sebastian Bergmann dan kontributor.... 3 / 3 (100%)Waktu: 00:00.102, Memori: 12.00 MBOK (3 tes, 3 pernyataan)Membuat laporan cakupan kode dalam format Clover XML ... selesai [00:00.002]Membuat laporan cakupan kode dalam format HTML ... selesai [00:00.012]
Untuk menghasilkan laporan cakupan, diperlukan Xdebug.
Jika Anda ingin menjalankan satu file test case:
$ vendor/bin/phpunit -c aplikasi/tes/ aplikasi/tes/model/Kategori_model_test.php
Sebagai contoh, kelas kasus uji untuk Inventory_model
adalah sebagai berikut:
<?phpclass Inventory_model_test memperluas TestCase {fungsi publik setUp(): void{$this->resetInstance();$this->CI->load->model('Inventory_model');$this->obj = $this->CI->Inventory_model; }fungsi publik test_get_category_list() {$diharapkan = [1 => 'Buku',2 => 'CD',3 => 'DVD', ];$list = $this->obj->get_category_list();foreach ($list as $category) {$this->assertEquals($expected[$category->id], $category->name); } }fungsi publik test_get_category_name() {$aktual = $ini->obj->get_category_name(1);$diharapkan = 'Buku';$ini->assertEquals($diharapkan, $aktual); } }
Sebagai contoh, kelas kasus uji untuk pengontrol Selamat Datang adalah sebagai berikut:
<?phpclass Welcome_test memperluas TestCase {fungsi publik test_index() {$output = $this->request('GET', 'welcome/index');$this->assertStringContainsString('<title>Selamat datang di CodeIgniter</title>', $output); } }
Lihat Cara Menulis Tes untuk detailnya.
Lihat Referensi Fungsi dan Kelas.
Lihat Tip.
Beberapa fitur ci-phpunit-test tersedia dalam paket mandiri berikut.
https://github.com/kenjis/phpunit-helper
https://github.com/kenjis/monkey-patch
Aplikasi Uji CodeIgniter untuk ci-phpunit-test
Penginstal Komposer CodeIgniter
CLI untuk CodeIgniter 3.0
Ranting CodeIgniter Sederhana dan Aman
Doktrin CodeIgniter
Penyebar CodeIgniter
Pemeriksa Nama File CodeIgniter3
Contoh Widget CodeIgniter (Lihat Sebagian).
Pengontrol Namespace CodeIgniter3