jest-puppeteer VS Cypress

Compare jest-puppeteer vs Cypress and see what are their differences.

Our great sponsors
  • Appwrite - The Open Source Firebase alternative introduces iOS support
  • talent.io - Download talent.io’s Tech Salary Report
  • Scout APM - Truly a developer’s best friend
  • SonarQube - Static code analysis for 29 languages.
jest-puppeteer Cypress
2 140
3,378 40,585
0.5% 2.3%
6.6 9.9
2 months ago 7 days ago
JavaScript JavaScript
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

jest-puppeteer

Posts with mentions or reviews of jest-puppeteer. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-03-04.
  • Evaluation of Microsoft Playwright
    7 projects | dev.to | 4 Mar 2021
    jest-playwright is added to the jest configuration as a preset which makes all the features available to be used at your disposal. It was inspired by jest-puppeteer.
  • Run end-to-end testing with Jest and Puppeteer
    3 projects | dev.to | 3 Mar 2021
    jestPuppeteer.debug() as in the documentation (on GitHub) suspends test execution and allows you to see what's going on in the browser. It uses the jestPuppeteer.debug() method which enables you to pause the tests to inspect the browser.

Cypress

Posts with mentions or reviews of Cypress. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-09-25.
  • Triple combined coverage with Typescript
    2 projects | dev.to | 25 Sep 2022
    import '@cypress/instrument-cra' import {defineConfig} from 'cypress' const codeCoverageTask = require('@bahmutov/cypress-code-coverage/plugin') module.exports = defineConfig({ projectId: '7mypio', experimentalSingleTabRunMode: true, retries: { runMode: 2, openMode: 0, }, env: { API_URL: 'http://localhost:4000/api', }, e2e: { specPattern: 'cypress/e2e/**/*.cy.{js,jsx,ts,tsx}', baseUrl: 'http://localhost:3000', setupNodeEvents(on, config) { return Object.assign({}, config, codeCoverageTask(on, config)) }, }, component: { setupNodeEvents(on, config) { return Object.assign({}, config, codeCoverageTask(on, config)) }, specPattern: 'src/**/*.cy.{js,jsx,ts,tsx}', devServer: { framework: 'create-react-app', bundler: 'webpack', // here are the additional settings from Gleb's instructions webpackConfig: { // workaround to react-scripts 5 issue https://github.com/cypress-io/cypress/issues/22762 devServer: { port: 3001, }, mode: 'development', devtool: false, module: { rules: [ // application and Cypress files are bundled like React components // and instrumented using the babel-plugin-istanbul { test: /\.ts$/, exclude: /node_modules/, use: { loader: 'babel-loader', options: { presets: [ '@babel/preset-env', '@babel/preset-react', '@babel/preset-typescript', ], plugins: [ 'istanbul', ['@babel/plugin-transform-modules-commonjs', {loose: true}], ], }, }, }, ], }, }, }, }, }) /* eslint-disable @typescript-eslint/no-unused-vars */
  • How To Start Testing React Apps (And Why I Recommend Cypress To Beginners)
    2 projects | dev.to | 23 Sep 2022
    Note that the last test is a bit more complex. Cypress doesn’t have a native way to test if an element is outside the viewport. I found this GitHub issue to be helpful.
  • Cypress vs Playwright – Clash of the Titans: Introduction (1)
    3 projects | dev.to | 20 Sep 2022
    GitHub issues: https://github.com/cypress-io/cypress/issues
  • Testing Copy to Clipboard with Cypress
    2 projects | dev.to | 9 Sep 2022
    How to test these scenario with Cypress?
  • How to set up a local E2E test development environment
    3 projects | dev.to | 5 Sep 2022
    For this tutorial, we're going to use Cypress, which in my opinion currently is the best end-to-end testing solution. (My one gripe with Cypress is the lack of support for testing of older browsers, which are the ones often causing regressions.)
  • Cypress 10.7 changelog
    2 projects | reddit.com/r/Cypress | 30 Aug 2022
    Re-introduces the experimental Cypress Studio feature. Cypress Studio provides a visual way to generate tests within Cypress by recording interactions against the application under test. Cypress Studio is available only in end-to-end tests, and must be enabled via the e2e.experimentalStudio flag. For more details, read our blog post. Addresses #23461.
  • Introducing Angular Component Testing
    2 projects | dev.to | 16 Aug 2022
    For a complete list of updates in 10.5.0, please review our changelog. If this feature is helpful, or if you have other ideas or feedback, let us know on Github.
  • Ask HN: How to price a service that saves hundreds of engineering hours?
    3 projects | news.ycombinator.com | 13 Aug 2022
    I have the opposite experience. LocalStorage can leak between tests and that has been an issue for years: https://github.com/cypress-io/cypress/issues/2695
    3 projects | news.ycombinator.com | 13 Aug 2022
    It sure does. The way Cypress works is that it injects their entire driver (test API) to the browser and then loads the tests themselves, also in the browser. It is a finicky process because they need to rewrite all JS and HTML (https://github.com/cypress-io/cypress/tree/develop/packages/...). It is slow because they have to proxy everything through HTTP 1.1 proxy (https://github.com/cypress-io/cypress/tree/develop/packages/...).

    The thing that I built takes a different approach. It parses Cypress tests, interprets the commands that Cypress wants to run, and then uses Chrome DevTool protocol (CDP) to evaluate commands such as navigation, click, etc. If you are familiar with the JavaScript ecosystem, my tool effectively transforms tests to Playwright compatible tests and then uses custom orchestration logic to run them.

  • A simple Cypress exercise
    2 projects | dev.to | 8 Aug 2022
    Here's a simple but helpful piece of information to better use Cypress and understand when to use one or another command.

What are some alternatives?

When comparing jest-puppeteer and Cypress you can also consider the following projects:

Playwright - Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.

Detox - Gray box end-to-end testing and automation framework for mobile apps

jest - Delightful JavaScript Testing.

WebdriverIO - Next-gen browser and mobile automation test framework for Node.js

puppeteer - Headless Chrome Node.js API

TestCafe - A Node.js tool to automate end-to-end web testing.

supertest - 🕷 Super-agent driven library for testing node.js HTTP servers using a fluent API.

kafka-test-helper - Utility library that simplify testing of Node.js components that interacts with Kafka broker.

microsoft-authentication-library-for-js - Microsoft Authentication Library (MSAL) for JS

Protractor - E2E test framework for Angular apps

jasmine - Simple JavaScript testing framework for browsers and node.js

Tailwind CSS - A utility-first CSS framework for rapid UI development.