@wordpress/e2e-tests

End-To-End (E2E) tests for WordPress.

Note that there’s currently an ongoing project to migrate E2E tests to Playwright instead. This package is deprecated and will only accept bug fixes until fully migrated.

Installation

Install the module

npm install @wordpress/e2e-tests --save-dev

Running tests

The following commands are available on the Gutenberg repo:

{
    "test:e2e": "wp-scripts test-e2e --config packages/e2e-tests/jest.config.js",
    "test:e2e:debug": "wp-scripts --inspect-brk test-e2e --config packages/e2e-tests/jest.config.js --puppeteer-devtools",
    "test:e2e:watch": "npm run test:e2e -- --watch"
}

Run all available tests

npm run test:e2e

Run all available tests and listen for changes.

npm run test:e2e:watch

Run a specific test file

npm run test:e2e -- packages/e2e-test/<path_to_test_file>
# Or, in order to watch for changes:
npm run test:e2e:watch -- packages/e2e-test/<path_to_test_file>

Debugging

Makes e2e tests available to debug in a Chrome Browser.

npm run test:e2e:debug

After running the command, tests will be available for debugging in Chrome by going to chrome://inspect/#devices and clicking inspect under the path to /test-e2e.js.

Debugging in vscode

Debugging in a Chrome browser can be replaced with vscode‘s debugger by adding the following configuration to .vscode/launch.json:

{
    "type": "node",
    "request": "launch",
    "name": "Debug current e2e test",
    "program": "${workspaceFolder}/node_modules/@wordpress/scripts/bin/wp-scripts.js",
    "args": [
        "test-e2e",
        "--config=${workspaceFolder}/packages/e2e-tests/jest.config.js",
        "--verbose=true",
        "--runInBand",
        "--watch",
        "${file}"
    ],
    "console": "integratedTerminal",
    "internalConsoleOptions": "neverOpen",
    "trace": "all"
}

This will run jest, targetting the spec file currently open in the editor. vscode‘s debugger can now be used to add breakpoints and inspect tests as you would in Chrome DevTools.

Note: This package requires Node.js version with long-term support status (check Active LTS or Maintenance LTS releases). It is not compatible with older versions.

Contributing to this package

This is an individual package that’s part of the Gutenberg project. The project is organized as a monorepo. It’s made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to npm and used by WordPress as well as other software projects.

To find out more about contributing to this package or Gutenberg as a whole, please read the project’s main contributor guide.