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