wp-cli/wp-cli-tests

WP-CLI 测试框架

安装: 1,497,439

依赖项: 67

建议者: 0

安全: 0

星级: 39

关注者: 10

分支: 22

开放问题: 12

类型:phpcodesniffer-standard


README

WP-CLI 测试框架

Testing

快速链接: 使用 | 贡献 | 支持

使用

要使用 WP-CLI 测试框架,您需要从要添加测试框架的包中完成以下步骤

  1. 将测试框架作为开发需求添加

    composer require --dev wp-cli/wp-cli-tests
  2. 将所需的测试脚本添加到 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"
        ]
    }

    当然,您可以删除不需要的脚本。

  3. 可选地,将修改后的进程超时添加到 composer.json 文件中,以确保脚本可以运行直到工作完成

    "config": {
        "process-timeout": 1800
    },

    超时以秒为单位表示。

  4. 可选地,在包根目录中添加一个 behat.yml 文件,内容如下

    default:
      suites:
        default:
          contexts:
            - WP_CLI\Tests\Context\FeatureContext
          paths:
            - features

    这将确保自动 Behat 系统在所有平台上都能正常工作。在 Windows 上需要此功能。

  5. 可选地,在包根目录中添加一个 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 配置选项 都是可用的。

  6. 更新您的 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 的特定版本运行测试。

此变量理解任何数字版本,以及特殊术语 latesttrunk

注意:这仅适用于 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 常量也理解 latesttrunk 作为有效的版本目标。

数据库凭据

默认情况下,测试是在名为 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