Import Cypress tests into Vera

The Cypress importer parses each spec with the TypeScript compiler, turns every it() block into one Vera test, and maps the common cy command chains onto Vera steps. It is deterministic, so the same spec always gives the same tests. There is no Cypress export: tests leave Vera as Playwright, WebdriverIO, Selenium (Python) or TestCafe.

What comes across

  • The Cypress converter is deterministic: the same file gives the same tests, with no AI call and no AI credits spent.
  • describe() and context() titles become the test-name prefix, and each it() or specify() block becomes one Vera test.
  • cy.visit(url) becomes a goto step.
  • cy.get(selector) and cy.contains(text) chains ending in click, type, select, check, uncheck or clear become click, fill, select, check and uncheck steps; clear becomes an empty fill.
  • .should('be.visible'), 'not.exist', 'have.text', 'contain' and 'have.value' become visible, hidden, text and value assertions.
  • cy.url().should(…) and cy.title().should(…) become URL and title assertions.
  • cy.request() becomes an api-request step with its method, URL and body.
  • cy.wait(ms) with a literal number becomes a wait step.

What does not

  • Custom commands, page objects, loops and non-literal arguments are not converted. Each statement is listed as a warning for manual or AI conversion, never silently dropped.
  • Setup and teardown hooks (beforeEach and friends) are skipped with a warning; re-add the setup to each test, or factor it into one reusable flow.
  • cy.wait('@alias') on a route alias has no fixed duration, so it does not convert.
  • cy.xpath() is not supported.
  • A bare cy.contains('…') used as an assertion is not converted. A spec whose only check was one imports as a flow that replays green and verifies nothing — add the assertion back.
  • There is no Cypress export. Vera exports to four targets only: Playwright, WebdriverIO, Selenium (Python) and TestCafe.

How to set it up

  1. Open a project's Tests page and choose Import tests, then pick your .cy.ts or .cy.js specs. The format is detected from each file.
  2. Read the warnings and the unresolved count before trusting the test count: they name every statement that was not converted.
  3. Optionally tick the AI conversion box to convert what the importer could not read. It is off by default because it spends AI credits, and every step it writes is flagged for review.
  4. Or convert from the repository: npx vera-agent init --import cypress finds the specs and uploads them through the CI API, which needs Pro or above on Vera's cloud (self-hosted installs include it). The dashboard import works on every plan.
  5. Run the imported tests once. Selectors that were fine in the source tool may need attention, and repeated logins are worth extracting into one reusable flow.

Questions

Can Vera import Cypress tests?

Yes. Each it() block becomes a Vera test, and cy.visit, cy.get and cy.contains chains, should() assertions, cy.request and literal cy.wait calls map onto Vera steps without any AI call.

Do Cypress custom commands come across?

No. A custom command is code, not a step list. Each one is reported as an unresolved statement, which you can convert by hand or with opt-in AI conversion.

Does a Cypress import cost AI credits?

No. The converter is deterministic. Only the optional AI conversion of statements it cannot read spends credits, on your own AI key.

Can I export Vera tests back to Cypress?

No. Vera exports to Playwright, WebdriverIO, Selenium (Python) and TestCafe. Cypress is an import source only.

Read more

Start free