A migration guide maps one test runner’s config, API, and commands to e2e. It also marks what e2e doesn’t have yet, with a workaround where there is one. A test with no workaround stays in the old runner. Keep the old suite installed while you move one test at a time, so both suites stay green.

Pick your runner

Move one test at a time

Install e2e with the quickstart first. Only agent steps need a model.

e2e tests run in Node, in TypeScript by default or in JavaScript. For a Java, Python, or native suite, install e2e in an e2e/ folder with its own package.json.

Each guide follows the same steps:

  1. Port the config. The old runner’s base URL, app command, and devices become a target in e2e.config.ts.
  2. Rewrite one test as a .e2e.ts file under tests/. Keep the file patterns of the two runners apart, so neither runs the other’s tests.
  3. Run the new test with npx e2e run <file> until it passes.
  4. Delete the old test when you trust the new one.

Let an agent migrate the suite

To move one test with a coding agent, copy the agent prompt at the top of your runner’s guide. For a migration over many sessions, use the migrate-to-e2e skill. It records progress in a MIGRATION.md file and keeps the old suite running.

Migrate from a runner with no guide

WebdriverIO and Appium have no guide. Map WebDriver calls with the Selenium guide. Map Appium device commands with the Detox and Maestro guides, on the mobile engine. These mappings are partial: no guide covers the WebdriverIO or Appium APIs themselves.

Next

Was this page helpful?