Introduction
In my last post here, I presented my new WordPress environment tool called WP Setup, and at that moment it was missing a test environment.
Today, I finished the first implementation of this environment, adding Pest and PHPUnit in v10.5, which is currently not supported by default with WP Env.
So, let's put our hands a little bit into the code and see how to start doing tests with WP Setup and Pest in a few steps creating a basic plugin.
The plugin basis
To build this simple example, create a directory called my-plugin
with just a my-plugin.php
file containing the WP header requirements.
Then, start an npm project in this directory by typing npm init -y
in a terminal.
Now we just need to add WP Setup as a development package by typing the following command in the terminal:
npm install wp-setup --save-dev
And in the scripts
section of the created package.json
file, add the json bellow:
"scripts": {
"wp-setup": "wp-setup",
"env:start": "wp-setup start",
"env:stop": "wp-setup stop",
"env:destroy": "wp-setup destroy",
"env:run": "wp-setup run",
"env:wp": "wp-setup wp",
"env:help": "wp-setup help",
"env:composer": "wp-setup run wp-cli --workdir . composer",
"env:pest": "wp-setup run wp-test-cli --workdir . global-pest"
}
The init command
In this last update, the init
command was added, and with this, it's now only two commands to set up the environment.
Create the wp-setup.json
file:
npm run wp-setup init
Create the test configuration:
npm run wp-setup -- --tests
After this, you will end up with this structure:
Starting the environment
Now, we are fully set up and just need to start the environment.
Please, be sure to have the ports :80 and :443 available on your machine and Docker started.
Run:
npm run env:start
After a while, you can visit your environment at https://my-plugin.localhost
.
Finally running the tests
Now that all is up and running, we can start our tests with Pest by running:
npm run env:pest
As you can see, the example tests ran as expected, and you can create new tests following the Pest documentation and the WordPress Tests Handbook.
Stopping the environment
Now that we've finished our work here, we can stop our environment, removing the existing Docker containers and freeing the used ports. The images and development volumes will persist on your machine, making it fast to start again.
npm run env:stop
Also, if you prefer, you can destroy the entire environment by running:
npm run env:destroy
Conclusion
I hope this simple tutorial helps you effectively utilize WP Setup with Pest for your WordPress development projects.
If you have any questions or need further assistance, please feel free to comment out here. Happy coding!!!
Top comments (0)