mrkeyoor.com_
Sat 19 Sept 10:50 UTC
Dev Toolsevaluationupdated 27 Aug 2026

cypress review

Cypress is a browser testing system for end-to-end and component tests, with an interactive runner for watching commands, page state, requests, and failures. It gives web teams one JavaScript or TypeScript workflow for local debugging and automated browser checks.

+11stars / 7d
Verdict

Our Cypress run consumed 3,249 MB and 525 seconds for installation, built in 211 seconds, then failed with 5 of 7 parsed Mocha tests failing after 106 seconds. The product remains a strong choice for teams that value its interactive runner and browser-centered debugging enough to absorb a heavy toolchain. New projects should run the same representative flows in Cypress and Playwright before committing, especially when network interception or service workers are important.

We ran it

Lab card: what happened when we ran cypressScreenshot of cypress (cypress.io)
Install✓ · 525s4291 packages · 3249 MB
Build✓ · 211s
Tests✗ · 106s2 passed · 5 failed of 7 (mocha)
Repo7341 files~612,304 lines of source · 93.4 MB · 12 CI workflows

Answers from our run

Does cypress build from source?

Dependencies installed in 525 seconds (4291 packages), and the build succeeded in 211 seconds. We cloned commit bfdcb67 into a clean Debian container with 3 CPUs and no project-specific setup.

Do cypress's tests pass?

Not all of them: 2 of 7 passed and 5 failed when we ran the project's own test command (mocha). Some failures need services or credentials a bare container does not have.

Who should not use cypress?

Contributors seeking a light source checkout: our install took 525 seconds, pulled 4,291 packages, and used 3,249 MB.

What are the alternatives to cypress?

Playwright, Selenium, WebdriverIO. Our Cypress run consumed 3,249 MB and 525 seconds for installation, built in 211 seconds, then failed with 5 of 7 parsed Mocha tests failing after 106 seconds.

Setup2/5525-second install, 3,249 MB, and a failed test command
Docs5/5Extensive official guides, concepts, API references, and changelog
Community5/551,002 stars and active releases and issues in August 2026
Maturity4/5Version 15.21.1 is active; our source test run was not clean

Discussed on

  1. hnCypress can't open Tesla.com website4 points

Who it’s for

Web teams that want interactive debugging beside end-to-end tests.
JavaScript and TypeScript projects testing user flows in real browsers.
Component teams that want browser rendering and test-runner feedback in one tool.
Organizations willing to budget for a large local binary and contributor dependency tree.

Who it’s NOT for

Contributors seeking a light source checkout: our install took 525 seconds, pulled 4,291 packages, and used 3,249 MB.
Teams that require a clean upstream test run before adoption: our measured command ended with 5 failures out of 7 parsed Mocha tests.
Workloads relying on the proxy-disabled network path without dedicated regression tests: current issues report missing intercepted headers, lossy binary request bodies, service-worker gaps, and delayed load failures.
Projects that want a tiny command-line library rather than a browser application, binary, runner, and monorepo toolchain.
Users expecting the open repository alone to provide hosted run recording and dashboards: the README points those features to Cypress Cloud, a separate service.

Setup reality

Our yarn sandbox installed 4,291 packages in 525 seconds and used 3,249 MB. The build succeeded in 211 seconds. Tests failed with exit code 1 after 106 seconds; the harness parsed 2 passed and 5 failed out of 7 Mocha tests.

Using Cypress in an application starts with a dev dependency, then downloads or verifies its browser-testing binary. CI needs a supported browser, display or headless setup, cache management, and any credentials used for the application under test or Cypress Cloud.

The 93.4 MB monorepo held 7,341 files and about 612,304 source lines. It had 12 CI workflows, a compose file, and workspaces, but no tests directory. This is a mature application codebase, not a small test helper.

Interactive debugging is Cypress's strongest reason to exist

Cypress runs browser tests with a visual command log and application preview. A developer can watch a test act on the page, inspect prior command states, and connect a failed assertion to what the browser displayed. Official documentation positions it for end-to-end, component, and accessibility testing. That tight feedback loop is the reason to consider Cypress over a thinner automation library, especially when the people writing tests also build the interface.

Tests use chained commands and automatic retry behavior rather than a script that fires every DOM query once. This can make assertions less sensitive to ordinary rendering delays, but teams must learn Cypress's command queue and subject model. Code that looks like synchronous JavaScript does not always behave like it. The payoff arrives when the team adopts Cypress conventions consistently instead of wrapping every command in homegrown waits and helpers.

What happened when we ran it

Our sandbox cloned commit bfdcb67 and installed 4,291 yarn packages in 525 seconds. The resulting dependency tree occupied 3,249 MB. The build completed successfully in 211 seconds. Those numbers make source contribution expensive on a small CI runner or laptop, even before browser caches, screenshots, videos, and application dependencies are counted.

The test command failed with exit code 1 after 106 seconds. Our harness parsed 2 passed and 5 failed out of 7 Mocha tests. The log tail also showed a Vitest segment with 25 files and 1,525 tests passing, then Lerna reported that yarn test exited 1 in @packages/config. That passing segment does not overturn the top-level failure.

The supplied tail did not show the names or assertions for the 5 failed Mocha tests, so we cannot assign a cause. We can only say that commit bfdcb67 did not complete its invoked test target in our clean Node 22 container. The repository contained 7,341 files, about 612,304 source lines, 12 CI workflow files, a compose file, and monorepo workspaces. Our scan found no tests directory.

Application adoption is easier than source contribution

A product team installs Cypress as a development dependency rather than compiling this entire monorepo. The README supports npm, yarn, and pnpm. First use still involves Cypress's binary, a supported browser, project configuration, and a server for the application under test. CI should cache the binary separately from package dependencies and make any application credentials narrowly scoped to the test environment.

Local open mode is where the larger install can earn its cost. Developers see browser output and commands together, while CI uses headless runs for repeatability. Component testing can mount a smaller unit in a real browser, and end-to-end specs can cover full user paths. Decide which layer owns each assertion. Repeating the same behavior through unit, component, and end-to-end suites increases runtime without necessarily increasing confidence.

Network interception is powerful and currently changing

cy.intercept is a major part of many Cypress suites because it can observe, stub, or wait on browser requests. Current issue traffic shows active work on a proxy-disabled path that uses Chrome DevTools Protocol sessions. Issue 34630 tracks child-session gaps where service workers, popups, or isolated iframes may escape interception and reach the real network. A test expecting a stub can become unsafe or flaky if that boundary changes.

Other reports are more specific. Issue 34658 says binary request bodies become lossy UTF-8 strings on the browser network path. Issue 34657 reports that headers visible to cy.intercept omit values that the origin receives. Issue 34689 describes load failures that wait 30 seconds and surface a timeout rather than the browser's failure reason. These reports concern a developing path, but teams testing uploads, workers, or header policy should pin them as acceptance cases.

Cypress Cloud is optional and separate from the MIT code

The repository is MIT-licensed and can run tests locally or in CI. Its README points recorded run badges and dashboards to Cypress Cloud. Teams that need parallel coordination, historical analytics, or hosted artifacts should evaluate that service's pricing, retention, access controls, and data boundary separately. The open runner is not the same thing as the hosted operational layer.

That separation also affects migration cost. Test specifications remain in your repository, while dashboard history and organization settings may live elsewhere. Before choosing any hosted test service, define which artifacts can contain customer data, how screenshots and videos are scrubbed, and how long failed-run output persists. These questions matter more than a badge in a README.

Fresh releases coexist with a large change surface

GitHub showed 51,002 stars, 1,062 combined issues and pull requests, and a last push on August 27, 2026. Release v15.21.1 was published 2 days earlier, on August 25. A current issue proposes removing the deprecated cy.exec() command in Cypress 16 and directing users to cy.task(). That is a concrete upcoming migration for suites that execute system commands.

Cypress has the documentation, community, and debugging experience expected of an established browser tool. Our measurement is less comfortable: a 525-second, 3,249 MB install and a failed 106-second test run make the source project costly to work in. Evaluate the product through your own login, file-upload, service-worker, and network-stubbing flows. If its visual runner shortens diagnosis enough, the weight can be justified; if not, Playwright is the first comparison to run.

Alternatives

ProjectWhat it isPick it when
Playwright gh↗A cross-browser automation and testing framework with isolated browser contexts.pick this instead when multi-page, multi-context, or broad browser automation is central to the suite.
Selenium gh↗The established WebDriver browser automation project with many language bindings.pick this instead when language choice, WebDriver infrastructure, or existing grid capacity decides the stack.
WebdriverIOA Node.js test framework built around WebDriver and browser automation protocols.pick this instead when a Node workflow needs WebDriver services, plugins, or mobile integration.

What people are saying

  1. [github-trending] cypress-io/cypress

Sources

  1. Cypress repository and README
  2. Cypress v15.21.1 release
  3. Why Cypress official documentation
  4. Proxy-disabled child-session tracker 34630
  5. Binary request body issue 34658
  6. Delayed load failure issue 34689

More dev tools reviews

python-patterns · opcode · mdBook · lore · OhMyKeymint · tty7 · the whole board →