Playwright compatibility layer to run cypress test cases without rewrites and modifications.
Install module with you favorite package manager
# pnpm
pnpm add -D playwright-cypress-adapter
# npm
npm install -D playwright-test-adapter
# yarn
yarn add -D playwright-test-adapter
Change playwright config to use cypress test cases
// playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
// ...
testMatch: /.*cy.js/,
});
Prepend your cypress test cases with
// my-test-case.cy.js
import { setup } from 'playwright-cypress-adapter';
setup();
And now you can run your tests with playwright. Check project playwright.config.ts and package.json scripts to see additional configurations.
Currently, adapter can successfully translate basic todo.cy.js
test case into playwright test runner. This might be
enough for simple projects, but I highly doubt so. If you find this project useful, make sure to star it and provide the
feedback on what cypress actions are needed for your use cases.
Yes, project uses conditional exports to provide mocked module for cypress that doesn't modify any globals.
Yes, some APIs with similar names are very different between cypress and playwright. See compatibility notes.
No cypress source code is copied. But for the testing purposes project uses cypress basic examples.