Skip to content

Commit 7fcebcc

Browse files
authored
Merge pull request #32 from wp-cli/adapt-readme-partial
Adapt the README.md partial
2 parents 4ec287a + 96b17ac commit 7fcebcc

File tree

1 file changed

+69
-2
lines changed

1 file changed

+69
-2
lines changed

.readme-partials/USING.md

Lines changed: 69 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@ To make use of the WP-CLI testing framework, you need to complete the following
88
2. Add the required test scripts to the `composer.json` file:
99
```json
1010
"scripts": {
11+
"behat": "run-behat-tests",
12+
"behat-rerun": "rerun-behat-tests",
1113
"lint": "run-linter-tests",
1214
"phpcs": "run-phpcs-tests",
1315
"phpunit": "run-php-unit-tests",
14-
"behat": "run-behat-tests",
1516
"prepare-tests": "install-package-tests",
1617
"test": [
1718
"@lint",
@@ -40,7 +41,7 @@ To make use of the WP-CLI testing framework, you need to complete the following
4041
```
4142
This will make sure that the automated Behat system works across all platforms. This is needed on Windows.
4243

43-
4. Update your composer dependencies and regenerate your autoloader and binary folders:
44+
5. Update your composer dependencies and regenerate your autoloader and binary folders:
4445
```bash
4546
composer update
4647
```
@@ -69,6 +70,72 @@ Prepending with the double dash is needed because the arguments would otherwise
6970

7071
### Controlling the test environment
7172

73+
#### WordPress Version
74+
75+
You can run the tests against a specific version of WordPress by setting the `WP_VERSION` environment variable.
76+
77+
This variable understands any numeric version, as well as the special terms `latest` and `trunk`.
78+
79+
Note: This only applies to the Behat functional tests. All other tests never load WordPress.
80+
81+
Here's how to run your tests against the latest trunk version of WordPress:
82+
```bash
83+
WP_VERSION=trunk composer behat
84+
```
85+
86+
#### WP-CLI Binary
87+
88+
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.
89+
90+
This can be useful to run your tests against a specific Phar version of WP_CLI.
91+
92+
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.
93+
94+
As an example, here's how to run your tests against a specific Phar version you've downloaded.
95+
```bash
96+
# Prepare the binary you've downloaded into the ~/wp-cli folder first.
97+
mv ~/wp-cli/wp-cli-1.2.0.phar ~/wp-cli/wp
98+
chmod +x ~/wp-cli/wp
99+
100+
WP_CLI_BIN_DIR=~/wp-cli composer behat
101+
```
102+
103+
### Setting up the tests in Travis CI
104+
105+
Basic rules for setting up the test framework with Travis CI:
106+
107+
* `composer prepare-tests` needs to be called once per environment.
108+
* `linting and sniffing` is 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.
109+
* `composer behat || composer behat-rerun` causes 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.
110+
111+
Here's a basic setup of how you can configure Travis CI to work with the test framework (extract):
112+
```yml
113+
install:
114+
- composer install
115+
- composer prepare-tests
116+
117+
script:
118+
- composer phpunit
119+
- composer behat || composer behat-rerun
120+
121+
jobs:
122+
include:
123+
- stage: sniff
124+
script:
125+
- composer lint
126+
- composer phpcs
127+
env: BUILD=sniff
128+
- stage: test
129+
php: 7.2
130+
env: WP_VERSION=latest
131+
- stage: test
132+
php: 7.2
133+
env: WP_VERSION=3.7.11
134+
- stage: test
135+
php: 7.2
136+
env: WP_VERSION=trunk
137+
```
138+
72139
#### WP-CLI version
73140
74141
You can point the tests to a specific version ow WP-CLI through the `WP_CLI_BIN_DIR` constant:

0 commit comments

Comments
 (0)