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 update
現在您可以使用套件中的測試框架了。
您可以使用以下命令來控制測試:
composer prepare-tests
- 設定運行功能測試所需的資料庫。這只需要一次。composer test
- 運行所有測試套件。composer lint
- 僅執行 linting 測試套件。composer phpcs
- 僅執行程式碼嗅探器測試套件。composer phpcbf
- 僅執行程式碼嗅探器清理。composer phpunit
- 僅運行單元測試套件。composer behat
- 僅運行功能測試套件。若要將一個或多個參數傳送到測試工具之一,請在參數前面加上雙破折號。作為範例,以下是如何僅針對特定功能檔案執行功能測試:
composer behat -- features/cli-info.feature
需要在前面加上雙破折號,因為否則參數將被送到 Composer 本身,而不是 Composer 執行的工具。
您可以透過設定WP_VERSION
環境變數來針對特定版本的 WordPress 執行測試。
該變數理解任何數位版本,以及特殊術語latest
和trunk
。
注意:這僅適用於 Behat 功能測試。所有其他測試都不會加載 WordPress。
以下是如何針對最新的 WordPress 主幹版本執行測試:
WP_VERSION=trunk composer behat
您可以針對特定的 WP-CLI 二進位檔案執行測試,而不是使用專案的vendor/bin
夾中建置的二進位檔案。
這對於針對特定 Phar 版本的 WP_CLI 執行測試非常有用。
為此,您可以設定WP_CLI_BIN_DIR
環境變數以指向包含可執行wp
進位檔案的資料夾。注意:二進位檔案必須命名為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
。linting and sniffing
是靜態分析,因此它不應該依賴任何特定環境。您應該只執行一次此操作,作為一個單獨的階段,而不是每個環境。composer behat || composer behat-rerun
會導致 Behat 測試首先完整運行,如果場景失敗,則僅對失敗的場景進行第二次運行。這通常可以解決間歇性問題,例如逾時或類似問題。以下是如何配置 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
是要使用的資料庫引擎類型,即“sqlite”,用於在 SQLite 而不是 MySQL 上執行測試(預設為“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