wp-cli/wp-cli-tests
Composer 安装命令:
composer require wp-cli/wp-cli-tests
包简介
WP-CLI testing framework
关键字:
README 文档
README
WP-CLI testing framework
Quick links: Using | Contributing | Support
Using
To make use of the WP-CLI testing framework, you need to complete the following steps from within the package you want to add them to:
-
Add the testing framework as a development requirement:
composer require --dev wp-cli/wp-cli-tests
-
Add the required test scripts to the
composer.jsonfile:"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" ] }
You can of course remove the ones you don't need.
-
Optionally add a modified process timeout to the
composer.jsonfile to make sure scripts can run until their work is completed:"config": { "process-timeout": 1800 },
The timeout is expressed in seconds.
-
Optionally add a
behat.ymlfile to the package root with the following content:default: suites: default: contexts: - WP_CLI\Tests\Context\FeatureContext paths: - features
This will make sure that the automated Behat system works across all platforms. This is needed on Windows.
-
Optionally add a
phpcs.xml.distfile to the package root to enable code style and best practice checks using PHP_CodeSniffer.Example of a minimal custom ruleset based on the defaults set in the WP-CLI testing framework:
<?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>
All other PHPCS configuration options are, of course, available.
-
Update your composer dependencies and regenerate your autoloader and binary folders:
composer update
You are now ready to use the testing framework from within your package.
Launching the tests
You can use the following commands to control the tests:
composer prepare-tests- Set up the database that is needed for running the functional tests. This is only needed once.composer test- Run all test suites.composer lint- Run only the linting test suite.composer phpcs- Run only the code sniffer test suite.composer phpcbf- Run only the code sniffer cleanup.composer phpunit- Run only the unit test suite.composer behat- Run only the functional test suite.
Controlling what to test
To send one or more arguments to one of the test tools, prepend the argument(s) with a double dash. As an example, here's how to run the functional tests for a specific feature file only:
composer behat -- features/cli-info.feature
Prepending with the double dash is needed because the arguments would otherwise be sent to Composer itself, not the tool that Composer executes.
Controlling the test environment
WordPress Version
You can run the tests against a specific version of WordPress by setting the WP_VERSION environment variable.
This variable understands any numeric version, as well as the special terms latest and trunk.
Note: This only applies to the Behat functional tests. All other tests never load WordPress.
Here's how to run your tests against the latest trunk version of WordPress:
WP_VERSION=trunk composer behat
WP-CLI Binary
You can run the tests against a specific WP-CLI binary, instead of using the one that has been built in your project's vendor/bin folder.
This can be useful to run your tests against a specific Phar version of WP_CLI.
To do this, you can set the WP_CLI_BIN_DIR environment variable to point to a folder that contains an executable wp binary. Note: the binary has to be named wp to be properly recognized.
As an example, here's how to run your tests against a specific Phar version you've downloaded.
# 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
Setting up the tests in Travis CI
Basic rules for setting up the test framework with Travis CI:
composer prepare-testsneeds to be called once per environment.linting and sniffingis a static analysis, so it shouldn't depend on any specific environment. You should do this only once, as a separate stage, instead of per environment.composer behat || composer behat-reruncauses the Behat tests to run in their entirety first, and in case their were failed scenarios, a second run is done with only the failed scenarios. This usually gets around intermittent issues like timeouts or similar.
Here's a basic setup of how you can configure Travis CI to work with the test framework (extract):
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 version
You can point the tests to a specific version of WP-CLI through the WP_CLI_BIN_DIR constant:
WP_CLI_BIN_DIR=~/my-custom-wp-cli/bin composer behat
WordPress version
If you want to run the feature tests against a specific WordPress version, you can use the WP_VERSION constant:
WP_VERSION=4.2 composer behat
The WP_VERSION constant also understands the latest and trunk as valid version targets.
The database credentials
By default, the tests are run in a database named wp_cli_test with the user also named wp_cli_test with password password1.
This should be set up via the composer prepare-tests command.
The following environment variables can be set to override the default database credentials.
WP_CLI_TEST_DBHOSTis the host to use and can include a port, i.e "127.0.0.1:33060" (defaults to "localhost")WP_CLI_TEST_DBROOTUSERis the user that has permission to administer databases and users (defaults to "root").WP_CLI_TEST_DBROOTPASSis the password to use for the above user (defaults to an empty password).WP_CLI_TEST_DBNAMEis the database that the tests run under (defaults to "wp_cli_test").WP_CLI_TEST_DBUSERis the user that the tests run under (defaults to "wp_cli_test").WP_CLI_TEST_DBPASSis the password to use for the above user (defaults to "password1").WP_CLI_TEST_DBTYPEis the database engine type to use, i.e. "sqlite" for running tests on SQLite instead of MySQL (defaults to "mysql").WP_CLI_TEST_OBJECT_CACHEis the persistent object cache backend to use. Only supports "sqlite".
Environment variables can be set for the whole session via the following syntax: export WP_CLI_TEST_DBNAME=custom_db.
They can also be set for a single execution by prepending them before the Behat command: WP_CLI_TEST_DBNAME=custom_db composer behat.
Contributing
We appreciate you taking the initiative to contribute to this project.
Contributing isn’t limited to just code. We encourage you to contribute in the way that best fits your abilities, by writing tutorials, giving a demo at your local meetup, helping other users with their support questions, or revising our documentation.
For a more thorough introduction, check out WP-CLI's guide to contributing. This package follows those policy and guidelines.
Reporting a bug
Think you’ve found a bug? We’d love for you to help us get it fixed.
Before you create a new issue, you should search existing issues to see if there’s an existing resolution to it, or if it’s already been fixed in a newer version.
Once you’ve done a bit of searching and discovered there isn’t an open or fixed issue for your bug, please create a new issue. Include as much detail as you can, and clear steps to reproduce if possible. For more guidance, review our bug report documentation.
Creating a pull request
Want to contribute a new feature? Please first open a new issue to discuss whether the feature is a good fit for the project.
Once you've decided to commit the time to seeing your pull request through, please follow our guidelines for creating a pull request to make sure it's a pleasant experience. See "Setting up" for details specific to working on this package locally.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Support
GitHub issues aren't for general support questions, but there are other venues you can try: https://wp-cli.org/#support
wp-cli/wp-cli-tests 适用场景与选型建议
wp-cli/wp-cli-tests 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 3.07M 次下载、GitHub Stars 达 42, 最近一次更新时间为 2018 年 05 月 22 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「cli」 「wordpress」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 wp-cli/wp-cli-tests 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 wp-cli/wp-cli-tests 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 wp-cli/wp-cli-tests 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Slim starter / Slim skeleton package to boost your development with Slim framework
Generates a trait to help ease the access of custom repo methods
Eco CLI for Laravel .env syncing
Must-use plugin integrating WordPress with the Upsun platform: environment awareness, router-cache friendliness, safe preview clones, deploy migrations, Site Health checks, and a wp upsun CLI command.
Read Pulo.dev feeds in terminal
Library to work with CLI color codes
统计信息
- 总下载量: 3.07M
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 42
- 点击次数: 18
- 依赖项目数: 79
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-05-22