You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .readme-partials/USING.md
+69-2Lines changed: 69 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,10 +8,11 @@ To make use of the WP-CLI testing framework, you need to complete the following
8
8
2. Add the required test scripts to the `composer.json` file:
9
9
```json
10
10
"scripts": {
11
+
"behat": "run-behat-tests",
12
+
"behat-rerun": "rerun-behat-tests",
11
13
"lint": "run-linter-tests",
12
14
"phpcs": "run-phpcs-tests",
13
15
"phpunit": "run-php-unit-tests",
14
-
"behat": "run-behat-tests",
15
16
"prepare-tests": "install-package-tests",
16
17
"test": [
17
18
"@lint",
@@ -40,7 +41,7 @@ To make use of the WP-CLI testing framework, you need to complete the following
40
41
```
41
42
This will make sure that the automated Behat system works across all platforms. This is needed on Windows.
42
43
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:
44
45
```bash
45
46
composer update
46
47
```
@@ -69,6 +70,72 @@ Prepending with the double dash is needed because the arguments would otherwise
69
70
70
71
### Controlling the test environment
71
72
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
+
72
139
#### WP-CLI version
73
140
74
141
You can point the tests to a specific version ow WP-CLI through the `WP_CLI_BIN_DIR` constant:
0 commit comments