Test Suite¶
The default Wordless theme is shipped with preconfigured test suite.
The test suite is implemented using the awesome WPBrowser and thus Codeception.
Note
By default Wordless is configured to run acceptance (aka integration or e2e or browser) test suite alone. If you’d like to run functional or unit suites, you’ll simply have to update the yarn test
script accordingly in package.json
file.
Quick start¶
Add tests to the tests/acceptance/WPFirstCest.php
file or write your own file in the same folder.
To run acceptance test suite you have to start the test server in one terminal
yarn test:server
and in another terminal let’s actually run tests:
yarn test
While test
will simply run acceptance test suite, test:server
is a variant of the default server
task which load different Procfile
and .env
files.
Where are test configurations?¶
test/
folder. This is where your test suites lay.- PHP dependencies declared in
composer.json
file shipped within the theme. This will create a/vendor
folder inside the theme whilistyarn setup
task - custom
wp-config.php
. This will be helpful to autodymagically (automatically, dynamically, magically; just in case you were wondering 🙄) switch from development to test database whilist test suite execution - 2 test related node scripts:
yarn test:server
andyarn test
. Obviously declared insidepackage.json
- a test database on your local machine called
$THEME_NAME_test
(where$THEME_NAME
is the chosen name during Wordless’ installation process) is created whilistyarn setup
task - ad hoc
Procfile.testing
,.env.testing
and.env.ci
- ready-to-go
.gitlab-ci.yml
file into the project root
Note
vendor/
folders are ignored in .gitignore
by default
How should I write tests?¶
This documentation is not intended to giude you thourgh testing concepts nor on Codeception’s syntax. You can already find great documentation and I advice you to start from
- https://wpbrowser.wptestkit.dev/modules/wpwebdriver
- https://wpbrowser.wptestkit.dev/modules/wpbrowser
- https://wpbrowser.wptestkit.dev/modules/wpdb
where you will find Wordpress specific methods and links to base Codeception’s methods all in one place.
CI¶
We ship default configuration for GitLab by putting a .gitlab-ci.yml
file in you project’s root folder.
That is configured to run out-of-the-box. And if you use other CI’s products you can use it as a starting point for your own configuration and then delete it without any regard :)