Kerangka pengujian WP-CLI
Tautan cepat: Menggunakan | Berkontribusi | Mendukung
Untuk menggunakan kerangka pengujian WP-CLI, Anda perlu menyelesaikan langkah-langkah berikut dari dalam paket yang ingin Anda tambahkan:
Tambahkan kerangka pengujian sebagai persyaratan pengembangan:
composer require --dev wp-cli/wp-cli-tests
Tambahkan skrip pengujian yang diperlukan ke file composer.json
:
"scripts" : {
"behat" : " run-behat-tests " ,
"behat-rerun" : " rerun-behat-tests " ,
"lint" : " run-linter-tests " ,
"phpcs" : " run-phpcs-tests " ,
"phpcbf" : " run-phpcbf-cleanup " ,
"phpunit" : " run-php-unit-tests " ,
"prepare-tests" : " install-package-tests " ,
"test" : [
" @lint " ,
" @phpcs " ,
" @phpunit " ,
" @behat "
]
}
Anda tentu saja dapat menghapus yang tidak Anda perlukan.
Secara opsional, tambahkan batas waktu proses yang dimodifikasi ke file composer.json
untuk memastikan skrip dapat berjalan hingga pekerjaannya selesai:
"config" : {
"process-timeout" : 1800
},
Batas waktu dinyatakan dalam hitungan detik.
Secara opsional, tambahkan file behat.yml
ke root paket dengan konten berikut:
default :
suites :
default :
contexts :
- WP_CLITestsContextFeatureContext
paths :
- features
Hal ini akan memastikan bahwa sistem Behat otomatis berfungsi di semua platform. Ini diperlukan di Windows.
Secara opsional, tambahkan file phpcs.xml.dist
ke root paket untuk mengaktifkan gaya kode dan pemeriksaan praktik terbaik menggunakan PHP_CodeSniffer.
Contoh kumpulan aturan khusus minimal berdasarkan default yang ditetapkan dalam kerangka pengujian WP-CLI:
xml version = " 1.0 " ?>
< ruleset name = " WP-CLI-PROJECT-NAME " >
< description >Custom ruleset for WP-CLI PROJECT NAME description >
< file >. file >
< arg value = " p " />
< arg name = " basepath " value = " ./ " />
< arg name = " parallel " value = " 8 " />
< config name = " testVersion " value = " 5.4- " />
< rule ref = " WP_CLI_CS " />
ruleset >
Tentu saja, semua opsi konfigurasi PHPCS lainnya tersedia.
Perbarui dependensi komposer Anda dan buat ulang folder autoloader dan biner Anda:
composer update
Anda sekarang siap menggunakan kerangka pengujian dari dalam paket Anda.
Anda dapat menggunakan perintah berikut untuk mengontrol pengujian:
composer prepare-tests
- Menyiapkan database yang diperlukan untuk menjalankan tes fungsional. Ini hanya diperlukan sekali.composer test
- Jalankan semua rangkaian pengujian.composer lint
- Jalankan hanya rangkaian pengujian linting.composer phpcs
- Jalankan hanya rangkaian uji sniffer kode.composer phpcbf
- Jalankan hanya pembersihan sniffer kode.composer phpunit
- Jalankan hanya unit test suite.composer behat
- Jalankan hanya rangkaian pengujian fungsional.Untuk mengirim satu atau lebih argumen ke salah satu alat pengujian, tambahkan argumen dengan tanda hubung ganda. Sebagai contoh, berikut ini cara menjalankan pengujian fungsional hanya untuk file fitur tertentu:
composer behat -- features/cli-info.feature
Mengawali dengan tanda hubung ganda diperlukan karena argumen akan dikirim ke Komposer itu sendiri, bukan alat yang dijalankan Komposer.
Anda dapat menjalankan pengujian terhadap versi WordPress tertentu dengan mengatur variabel lingkungan WP_VERSION
.
Variabel ini memahami versi numerik apa pun, serta istilah khusus latest
dan trunk
.
Catatan: Ini hanya berlaku untuk uji fungsional Behat. Semua pengujian lainnya tidak pernah memuat WordPress.
Berikut cara menjalankan pengujian Anda terhadap WordPress versi trunk terbaru:
WP_VERSION=trunk composer behat
Anda dapat menjalankan pengujian terhadap biner WP-CLI tertentu, daripada menggunakan biner yang telah dibuat di folder vendor/bin
proyek Anda.
Ini dapat berguna untuk menjalankan pengujian Anda terhadap WP_CLI versi Phar tertentu.
Untuk melakukan ini, Anda dapat mengatur variabel lingkungan WP_CLI_BIN_DIR
agar menunjuk ke folder yang berisi biner wp
yang dapat dieksekusi. Catatan: biner harus diberi nama wp
agar dapat dikenali dengan benar.
Sebagai contoh, berikut ini cara menjalankan pengujian terhadap versi Phar tertentu yang telah Anda unduh.
# Prepare the binary you've downloaded into the ~/wp-cli folder first.
mv ~ /wp-cli/wp-cli-1.2.0.phar ~ /wp-cli/wp
chmod +x ~ /wp-cli/wp
WP_CLI_BIN_DIR= ~ /wp-cli composer behat
Aturan dasar untuk menyiapkan kerangka pengujian dengan Travis CI:
composer prepare-tests
perlu dipanggil satu kali per lingkungan.linting and sniffing
adalah analisis statis, jadi tidak bergantung pada lingkungan tertentu. Anda sebaiknya melakukan ini hanya sekali, sebagai tahap terpisah, bukan per lingkungan.composer behat || composer behat-rerun
menyebabkan pengujian Behat dijalankan secara keseluruhan terlebih dahulu, dan jika skenarionya gagal, pengujian kedua dilakukan hanya dengan skenario yang gagal. Ini biasanya mengatasi masalah yang terputus-putus seperti waktu habis atau sejenisnya.Berikut adalah pengaturan dasar tentang bagaimana Anda dapat mengonfigurasi Travis CI agar berfungsi dengan kerangka pengujian (ekstrak):
install :
- composer install
- composer prepare-tests
script :
- composer phpunit
- composer behat || composer behat-rerun
jobs :
include :
- stage : sniff
script :
- composer lint
- composer phpcs
env : BUILD=sniff
- stage : test
php : 7.2
env : WP_VERSION=latest
- stage : test
php : 7.2
env : WP_VERSION=3.7.11
- stage : test
php : 7.2
env : WP_VERSION=trunk
Anda dapat mengarahkan pengujian ke versi WP-CLI tertentu melalui konstanta WP_CLI_BIN_DIR
:
WP_CLI_BIN_DIR= ~ /my-custom-wp-cli/bin composer behat
Jika Anda ingin menjalankan pengujian fitur terhadap versi WordPress tertentu, Anda dapat menggunakan konstanta WP_VERSION
:
WP_VERSION=4.2 composer behat
Konstanta WP_VERSION
juga memahami versi latest
dan trunk
sebagai target versi yang valid.
Secara default, pengujian dijalankan dalam database bernama wp_cli_test
dengan pengguna juga bernama wp_cli_test
dengan kata sandi password1
. Ini harus diatur melalui perintah composer prepare-tests
.
Variabel lingkungan berikut dapat diatur untuk mengambil alih kredensial database default.
WP_CLI_TEST_DBHOST
adalah host yang akan digunakan dan dapat menyertakan port, yaitu "127.0.0.1:33060" (defaultnya adalah "localhost")WP_CLI_TEST_DBROOTUSER
adalah pengguna yang memiliki izin untuk mengelola database dan pengguna (defaultnya adalah "root").WP_CLI_TEST_DBROOTPASS
adalah kata sandi yang digunakan untuk pengguna di atas (defaultnya adalah kata sandi kosong).WP_CLI_TEST_DBNAME
adalah database tempat pengujian dijalankan (defaultnya adalah "wp_cli_test").WP_CLI_TEST_DBUSER
adalah pengguna yang menjalankan pengujian (defaultnya adalah "wp_cli_test").WP_CLI_TEST_DBPASS
adalah kata sandi yang digunakan untuk pengguna di atas (defaultnya adalah "kata sandi1").WP_CLI_TEST_DBTYPE
adalah tipe mesin database yang digunakan, yaitu "sqlite" untuk menjalankan tes pada SQLite, bukan MySQL (defaultnya adalah "mysql"). Variabel lingkungan dapat diatur untuk seluruh sesi melalui sintaks berikut: export WP_CLI_TEST_DBNAME=custom_db
.
Mereka juga dapat diatur untuk satu eksekusi dengan menambahkannya sebelum perintah Behat: WP_CLI_TEST_DBNAME=custom_db composer behat
.
Kami menghargai Anda mengambil inisiatif untuk berkontribusi pada proyek ini.
Berkontribusi tidak terbatas pada kode saja. Kami mendorong Anda untuk berkontribusi dengan cara yang paling sesuai dengan kemampuan Anda, dengan menulis tutorial, memberikan demo di pertemuan lokal, membantu pengguna lain dengan pertanyaan dukungan mereka, atau merevisi dokumentasi kami.
Untuk pengenalan yang lebih menyeluruh, lihat panduan WP-CLI untuk berkontribusi. Paket ini mengikuti kebijakan dan pedoman tersebut.
Anda pikir Anda menemukan bug? Kami ingin Anda membantu kami memperbaikinya.
Sebelum membuat masalah baru, Anda harus mencari masalah yang ada untuk melihat apakah masalah tersebut sudah ada penyelesaiannya, atau apakah masalah tersebut telah diperbaiki di versi yang lebih baru.
Setelah Anda melakukan sedikit pencarian dan menemukan bahwa tidak ada masalah yang masih terbuka atau telah diperbaiki untuk bug Anda, silakan buat masalah baru. Cantumkan sedetail mungkin, dan jelaskan langkah-langkah untuk mereproduksinya jika memungkinkan. Untuk panduan lebih lanjut, tinjau dokumentasi laporan bug kami.
Ingin menyumbangkan fitur baru? Silakan buka terbitan baru terlebih dahulu untuk mendiskusikan apakah fitur tersebut cocok untuk proyek tersebut.
Setelah Anda memutuskan meluangkan waktu untuk menyelesaikan permintaan penarikan, harap ikuti panduan kami dalam membuat permintaan penarikan untuk memastikan pengalaman tersebut menyenangkan. Lihat "Pengaturan" untuk rincian khusus untuk mengerjakan paket ini secara lokal.
Masalah GitHub bukan untuk pertanyaan dukungan umum, tetapi ada tempat lain yang dapat Anda coba: https://wp-cli.org/#support