WP-CLI テスト フレームワーク
クイックリンク: | の使用貢献する |サポート
WP-CLI テスト フレームワークを利用するには、追加先のパッケージ内で次の手順を実行する必要があります。
テスト フレームワークを開発要件として追加します。
composer require --dev wp-cli/wp-cli-tests
必要なテスト スクリプトを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 "
]
}
もちろん、不要なものを削除することもできます。
必要に応じて、変更されたプロセス タイムアウトをcomposer.json
ファイルに追加して、作業が完了するまでスクリプトが実行できるようにします。
"config" : {
"process-timeout" : 1800
},
タイムアウトは秒単位で表されます。
必要に応じて、次の内容を含むbehat.yml
ファイルをパッケージ ルートに追加します。
default :
suites :
default :
contexts :
- WP_CLITestsContextFeatureContext
paths :
- features
これにより、自動化された Behat システムがすべてのプラットフォームで動作することが保証されます。これは Windows で必要です。
必要に応じて、パッケージ ルートにphpcs.xml.dist
ファイルを追加して、PHP_CodeSniffer を使用したコード スタイルとベスト プラクティスのチェックを有効にします。
WP-CLI テスト フレームワークで設定されたデフォルトに基づく最小限のカスタム ルールセットの例:
<? xml version = " 1.0 " ?>
< ruleset name = " WP-CLI-PROJECT-NAME " >
< description >Custom ruleset for WP-CLI PROJECT NAME</ description >
<!-- What to scan. -->
< file >.</ file >
<!-- Show progress. -->
< arg value = " p " />
<!-- Strip the filepaths down to the relevant bit. -->
< arg name = " basepath " value = " ./ " />
<!-- Check up to 8 files simultaneously. -->
< arg name = " parallel " value = " 8 " />
<!-- For help understanding the `testVersion` configuration setting:
https://github.com/PHPCompatibility/PHPCompatibility#sniffing-your-code-for-compatibility-with-specific-php-versions -->
< config name = " testVersion " value = " 5.4- " />
<!-- Rules: Include the base ruleset for WP-CLI projects. -->
< rule ref = " WP_CLI_CS " />
</ ruleset >
もちろん、他のすべての PHPCS 構成オプションも利用できます。
Composer の依存関係を更新し、オートローダーとバイナリ フォルダーを再生成します。
composer update
これで、パッケージ内からテスト フレームワークを使用する準備が整いました。
次のコマンドを使用してテストを制御できます。
composer prepare-tests
- 機能テストの実行に必要なデータベースをセットアップします。これは 1 回だけ必要です。composer test
- すべてのテスト スイートを実行します。composer lint
- lint テスト スイートのみを実行します。composer phpcs
- コード スニファー テスト スイートのみを実行します。composer phpcbf
- コード スニッファー クリーンアップのみを実行します。composer phpunit
- 単体テスト スイートのみを実行します。composer behat
- 機能テスト スイートのみを実行します。1 つ以上の引数をテスト ツールの 1 つに送信するには、引数の前に二重ダッシュを付けます。例として、特定の機能ファイルのみの機能テストを実行する方法を次に示します。
composer behat -- features/cli-info.feature
二重ダッシュを先頭に追加する必要があるのは、引数が Composer が実行するツールではなく Composer 自体に送信されるためです。
WP_VERSION
環境変数を設定することで、WordPress の特定のバージョンに対してテストを実行できます。
この変数は、任意の数値バージョンだけでなく、特別な用語latest
およびtrunk
も理解します。
注: これは Behat 機能テストにのみ適用されます。他のすべてのテストは WordPress をロードしません。
WordPress の最新のトランク バージョンに対してテストを実行する方法は次のとおりです。
WP_VERSION=trunk composer behat
プロジェクトのvendor/bin
フォルダーに構築されたバイナリを使用する代わりに、特定の WP-CLI バイナリに対してテストを実行できます。
これは、WP_CLI の特定の Phar バージョンに対してテストを実行する場合に役立ちます。
これを行うには、実行可能なwp
バイナリを含むフォルダーを指すようにWP_CLI_BIN_DIR
環境変数を設定します。注: 正しく認識されるようにするには、バイナリの名前をwp
にする必要があります。
例として、ダウンロードした特定の Phar バージョンに対してテストを実行する方法を次に示します。
# 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
Travis CI でテスト フレームワークをセットアップするための基本ルール:
composer prepare-tests
環境ごとに 1 回呼び出す必要があります。linting and sniffing
静的分析であるため、特定の環境に依存すべきではありません。これは、環境ごとではなく、別のステージとして 1 回だけ実行する必要があります。composer behat || composer behat-rerun
使用すると、最初に Behat テスト全体が実行され、シナリオが失敗した場合には、失敗したシナリオのみで 2 回目の実行が実行されます。通常、これによりタイムアウトなどの断続的な問題が回避されます。Travis CI をテスト フレームワークと連携するように構成する方法の基本的なセットアップ (抜粋) を次に示します。
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
WP_CLI_BIN_DIR
定数を使用して、テストに特定のバージョンの WP-CLI を指定できます。
WP_CLI_BIN_DIR= ~ /my-custom-wp-cli/bin composer behat
特定の WordPress バージョンに対して機能テストを実行したい場合は、 WP_VERSION
定数を使用できます。
WP_VERSION=4.2 composer behat
WP_VERSION
定数は、 latest
バージョンとtrunk
も有効なバージョン ターゲットとして認識します。
デフォルトでは、テストはwp_cli_test
という名前のデータベース内で、同じくwp_cli_test
という名前のユーザー、パスワードpassword1
で実行されます。これは、 composer prepare-tests
コマンドを使用して設定する必要があります。
次の環境変数を設定して、デフォルトのデータベース資格情報をオーバーライドできます。
WP_CLI_TEST_DBHOST
使用するホストであり、ポート、つまり「127.0.0.1:33060」(デフォルトは「localhost」)を含めることができます。WP_CLI_TEST_DBROOTUSER
は、データベースとユーザーを管理する権限を持つユーザーです (デフォルトは「root」)。WP_CLI_TEST_DBROOTPASS
、上記のユーザーに使用するパスワードです (デフォルトは空のパスワード)。WP_CLI_TEST_DBNAME
は、テストが実行されるデータベースです (デフォルトは「wp_cli_test」)。WP_CLI_TEST_DBUSER
は、テストを実行するユーザーです (デフォルトは「wp_cli_test」)。WP_CLI_TEST_DBPASS
、上記のユーザーに使用するパスワードです (デフォルトは「password1」)。WP_CLI_TEST_DBTYPE
は使用するデータベース エンジンのタイプです。つまり、MySQL ではなく SQLite でテストを実行する場合は「sqlite」です (デフォルトは「mysql」)。環境変数は、次の構文を使用してセッション全体に設定できます: export WP_CLI_TEST_DBNAME=custom_db
。
これらを Behat コマンドの前に追加することで、単一実行用に設定することもできます: WP_CLI_TEST_DBNAME=custom_db composer behat
。
このプロジェクトに積極的に貢献していただきありがとうございます。
貢献はコードだけに限定されません。チュートリアルを作成したり、地元の交流会でデモを行ったり、他のユーザーのサポートに関する質問を支援したり、ドキュメントを改訂したりするなど、自分の能力に最も適した方法で貢献することをお勧めします。
より完全な紹介については、WP-CLI の貢献ガイドを確認してください。このパッケージは、これらのポリシーとガイドラインに従っています。
バグを見つけたと思いますか?問題の解決にご協力いただければ幸いです。
新しい問題を作成する前に、既存の問題を検索して、既存の解決策があるかどうか、または新しいバージョンですでに修正されているかどうかを確認する必要があります。
少し検索を行って、バグの未解決の問題や修正された問題がないことがわかったら、新しい問題を作成してください。できる限り詳細を記載し、可能であれば再現手順を明確にします。詳細については、バグ レポートのドキュメントを参照してください。
新しい機能に貢献したいですか?まず新しい問題を開いて、その機能がプロジェクトに適しているかどうかを話し合ってください。
プル リクエストを最後まで確認することに時間を割くと決めたら、プル リクエストを作成するためのガイドラインに従って、快適なエクスペリエンスを実現してください。このパッケージをローカルで操作する場合の詳細については、「セットアップ」を参照してください。
GitHub の問題は一般的なサポートの質問には対応していませんが、他の場所で試すことができます: https://wp-cli.org/#support