Adds the ability to ''locally'' run visual regression testing for wp-admin pages via `npm run test:visual`. Snapshots are stored on contributors' local machines. Note: Wiring to the CI is not included. Why? The challenges for the CI are storage of the artifacts and unreliability of testing these across different environments. This commit is a first step towards visual regression testing. Running it locally provides a learning opportunity which could help to craft how to build it into the automated CI process. Props isabel_brison, andraganescu, azaozz, danfarrow, desrosj, hellofromTonya, justinahinon, netweb, talldanwp. Fixes #49606. git-svn-id: https://develop.svn.wordpress.org/trunk@51989 602fd350-edb4-49c9-b593-d223f7449a82
E2E Tests
End-To-End (E2E) tests for WordPress.
Running the tests
The e2e tests require a production-like environment to run. By default, they will assume an environment is available at http://localhost:8889, with username=admin and password=password.
If you don't already have an environment ready, you can set one up by following these instructions.
Then you can launch the tests by running:
npm run test:e2e
which will run the test suite using a headless browser.
If your environment has a different url, username or password to the default, you can provide the base URL, username and password like this:
npm run test:e2e -- --wordpress-base-url=http://mycustomurl --wordpress-username=username --wordpress-password=password
DO NOT run these tests in an actual production environment, as they will delete all your content.
For debugging purposes, you might want to follow the test visually. You can do so by running the tests in an interactive mode.
npm run test:e2e -- --puppeteer-interactive
You can also run a single test file separately:
npm run test:e2e tests/e2e/specs/hello.test.js
Documentation
-
Block Editor Handbook end to end testing overview: https://developer.wordpress.org/block-editor/contributors/code/testing-overview/#end-to-end-testing
-
Gutenberg e2e-test-utils package API docs: https://github.com/WordPress/gutenberg/tree/trunk/packages/e2e-test-utils
-
Puppeteer API docs: https://github.com/puppeteer/puppeteer#readme (the version we are using is indicated in the @wordpress/scripts package: https://github.com/WordPress/gutenberg/blob/trunk/packages/scripts/package.json)