wp-cli / wp-cli-tests
WP-CLI 测试框架
Requires
- php: >=5.6
- behat/behat: ^3.7
- dealerdirect/phpcodesniffer-composer-installer: ^0.4.3 || ^0.5 || ^0.6.2 || ^0.7.1 || ^1.0.0
- php-parallel-lint/php-console-highlighter: ^1.0
- php-parallel-lint/php-parallel-lint: ^1.3.1
- phpcompatibility/php-compatibility: dev-develop
- wp-cli/config-command: ^1 || ^2
- wp-cli/core-command: ^1 || ^2
- wp-cli/eval-command: ^1 || ^2
- wp-cli/wp-cli: ^2.5.1
- wp-coding-standards/wpcs: ^3
- yoast/phpunit-polyfills: ^1.0.3 || ^2.0.1
Requires (Dev)
- roave/security-advisories: dev-latest
- v4.3.2
- v4.3.1
- v4.3.0
- v4.2.9
- v4.2.8
- v4.2.7
- v4.2.6
- v4.2.5
- v4.2.4
- v4.2.3
- v4.2.2
- v4.2.1
- v4.2.0
- v4.1.0
- dev-main / 4.0.x-dev
- v4.0.3
- v4.0.2
- v4.0.1
- v4.0.0
- v3.2.7
- v3.2.6
- v3.2.5
- v3.2.4
- v3.2.3
- v3.2.2
- v3.2.1
- v3.2.0
- v3.1.9
- v3.1.8
- v3.1.7
- v3.1.6
- v3.1.5
- v3.1.4
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.19
- v3.0.18
- v3.0.17
- v3.0.16
- v3.0.15
- v3.0.14
- v3.0.13
- v3.0.12
- v3.0.11
- v3.0.10
- v3.0.9
- v3.0.8
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.1.21
- v2.1.20
- v2.1.19
- v2.1.18
- v2.1.17
- v2.1.16
- v2.1.15
- v2.1.14
- v2.1.13
- v2.1.12
- v2.1.11
- v2.1.10
- v2.1.9
- v2.1.8
- v2.1.7
- v2.1.6
- v2.1.5
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.13
- v2.0.12
- v2.0.11
- v2.0.10
- v2.0.9
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v0.1.0
- dev-feature/wp-version-resolve
This package is auto-updated.
Last update: 2024-09-11 08:59:10 UTC
README
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_CLI\Tests\Context\FeatureContext 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
- 设置运行功能测试所需的数据库。这只需要做一次。composer test
- 运行所有测试套件。composer lint
- 仅运行 linting 测试套件。composer phpcs
- 仅运行 code sniffer 测试套件。composer phpcbf
- 仅运行 code sniffer 清理。composer phpunit
- 仅运行单元测试套件。composer behat
- 仅运行功能测试套件。
控制要测试的内容
要将一个或多个参数发送给测试工具之一,请将参数前面加上双横线。例如,以下是如何仅运行特定功能文件的测试
composer behat -- features/cli-info.feature
需要在前面加上双横线,因为否则参数将发送到 Composer 本身,而不是 Composer 执行的工具。
控制测试环境
WordPress 版本
您可以通过设置 WP_VERSION
环境变量来针对 WordPress 的特定版本运行测试。
此变量理解任何数字版本,以及特殊术语 latest
和 trunk
。
注意:这仅适用于 Behat 功能测试。所有其他测试永远不会加载 WordPress。
以下是如何针对 WordPress 最新 trunk 版本运行您的测试
WP_VERSION=trunk composer behat
WP-CLI 二进制文件
您可以使用特定 WP-CLI 二进制文件运行测试,而不是使用项目 vendor/bin
文件夹中构建的 WP-CLI。
这可以用于针对特定 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 中设置测试
使用 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 版本
您可以通过 WP_CLI_BIN_DIR
常量将测试指向 WP-CLI 的特定版本。
WP_CLI_BIN_DIR=~/my-custom-wp-cli/bin composer behat
WordPress 版本
如果您想针对特定版本的 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 而不是 MySQL 运行测试,请使用 "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