Pengujian

Pengujian di PHP

Chamilo menggunakan PHPUnit untuk pengujian backend.

Konfigurasi Basis Data Pengujian

Pengujian memerlukan basis data khusus. Buat file .env.test.local dengan kredensial basis data pengujian Anda:

DATABASE_HOST='127.0.0.1'
DATABASE_PORT='3306'
DATABASE_NAME='chamilo_test'
DATABASE_USER='root'
DATABASE_PASSWORD='root'

Kemudian, inisialisasi basis data pengujian:

php bin/console --env=test cache:clear
php bin/console --env=test doctrine:database:create
php bin/console --env=test doctrine:schema:create
php bin/console --env=test doctrine:fixtures:load --no-interaction

Untuk mengatur ulang setelah perubahan pada skema:

php bin/console --env=test doctrine:schema:update --force --complete

Menjalankan Pengujian

Lokasi Pengujian

Pengujian berada di direktori tests/:

Jenis Pengujian

  • Pengujian Unit/Integrasi — Pengujian dengan PHPUnit di CoreBundle/ dan CourseBundle/; sebagian besar mengakses basis data nyata (melalui dama/doctrine-test-bundle)

  • Pengujian Fungsional (API) — Memperluas AbstractApiTest dan menguji endpoint HTTP secara ujung ke ujung

  • Pengujian Behat — Pengujian penerimaan pada tingkat peramban di tests/behat/features/ (lihat di bawah)

Pengujian Behat (Ujung ke Ujung)

Chamilo memiliki serangkaian pengujian Behat untuk pengujian penerimaan pada tingkat peramban. Anda perlu memiliki instance Chamilo yang berjalan, serta Chrome dan ChromeDriver.

Konfigurasikan URL dasar di tests/behat/behat.yml sebelum menjalankan.

Pemeriksaan Frontend

Kualitas Kode PHP

Chamilo menggunakan ECS (Easy Coding Standard), PHPStan, dan Psalm untuk kualitas kode. Pintasan Composer tersedia untuk masing-masing:

Catatan: tidak ada php-cs-fixer di proyek ini. ECS (symplify/easy-coding-standard) adalah alat gaya kode yang digunakan.

Integrasi Berkelanjutan

Pull request diperiksa secara otomatis oleh empat alur kerja GitHub Actions:

Alur Kerja
Apa yang Dijalankan

phpunit.yml

Kumpulan pengujian PHPUnit

format_code.yml

Pemeriksaan gaya kode dengan ECS

php_analysis.yml

Psalm, validasi skema Doctrine, pemeriksa keamanan

behat.yml

Pengujian ujung ke ujung dengan Behat

Terakhir diperbarui

Apakah ini membantu?