Utilities library for WordPress E2E testing in the Cypress environment.
This library requires Cypress. Use @10up/cypress-wp-setup to set up Cypress automatically, including this library. If running tests against WordPress 6.3, you'll probably need to set chromeWebSecurity: false
in your Cypress config file. This allows Cypress to properly interact with the iframed Block Editor.
npm install @10up/cypress-wp-utils --save-dev
Import the libary in support/index.js
file:
// tests/cypress/support/index.js
import '@10up/cypress-wp-utils';
Documentation for commands can be found at https://10up.github.io/cypress-wp-utils/.
Add a tsconfig.json
file into the cypress folder to enable code completion for both Cypress built-in commands and commands from this library:
{
"compilerOptions": {
"allowJs": true,
"types": ["cypress"]
},
"include": ["**/*.*"]
}
This project uses hygen
to scaffold new commands to reduce the effort of manually importing and registering new commands:
$ npx hygen cypress-command new customCommand
Loaded templates: _templates
added: src/commands/custom-command.ts
inject: src/index.ts
inject: src/index.ts
inject: src/index.ts
npm i -D path/to/the/library
Every incoming pull request will automatically run tests against:
- our current minimum supported WordPress version, 5.7
- WordPress latest release
- current WordPress future release
To run tests locally against every WordPress major release since minimum support (5.7) to the latest nightly build (e.g., 6.4-alpha) use this script:
./run-all-cores.sh
It has optional parameter -s
to specify only one test suite to run:
./run-all-cores.sh -s tests/cypress/intergation/login.test.js
Please read CODE_OF_CONDUCT.md for details on our code of conduct, CONTRIBUTING.md for details on the process for submitting pull requests to us, and CREDITS.md for a list of maintainers, contributors, and libraries used in this repository.
Beta: This project is quite new and we're not sure what our ongoing support level for this will be. Bug reports, feature requests, questions, and pull requests are welcome. If you like this project please let us know, but be cautious using this in a Production environment!