Plugins
Plugins provide a way to support and extend the behavior of Cypress. Follow these instructions to submit your own plugin.
info
Check out our Plugins Guide or our API docs for writing a plugin.
Plugin Types
Preprocessors
Cucumber
communityRun cucumber/gherkin-syntaxed specs with cypress.io
#file-watcher #cucumberCytorus
communityRun cucumber/gherkin-syntaxed specs with cypress.io
#gherkin #cucumbercypress-app-watcher-preprocessor
communityReruns Cypress tests when the back end server restarts
#file-watchercypress-eslint-preprocessor
communityRuns linting via ESLint on your spec files as they are loaded and display errors in the console
#eslintWatch
officialWatches your spec files and serves them as-is. Useful as an example reference or if you don't need transpiling/bundling.
#file-watcherWebpack
officialWatches and bundles your spec files via webpack.
#webpackRollup
communityWatches and bundles your spec files via Rollup
#rollupcypress-markdown-preprocessor
communityCypress preprocessor for extracting tests from Markdown files
#markdowncypress-rollup-preprocessor
communityCypress preprocessor for bundling JavaScript via rollup
#rollupBundle Cypress specs using esbuild
#esbuildcypress-esbuild-preprocessor
communityUses evanw/esbuild to bundle your specs.
#esbuild
Development Tools
CircleCI Cypress Orb
officialOfficial Cypress Orb for CircleCI configuration.
#continuous-integrationcypress-dark
verifiedSeveral color themes for Cypress test runner
#themecypress-protobuf
communityEncode a fixture with Protocol Buffers.
#encoding #protobufDocker
officialDocker images providing all the dependencies to run Cypress in CI including browsers.
#docker #continuous-integrationeslint-plugin-cypress
officialESLint plugin that sets globals for writing tests in Cypress.
#eslintKnapsack Pro Cypress
communityDynamic tests split across parallel CI nodes with Knapsack Pro Queue Mode to get faster CI builds. Note - this is 3rd party implementation, different from the Cypress Dashboard parallelization.
#CI parallelisation #continuous-integrationTypeScript
officialOfficial TypeScript definitions for the Cypress API.
#typescriptcly
communityA prototype of generating quicker project scaffolding for Cypress.
#cypress cli #prototype #CLI #scaffoldingcypress-watch-and-reload
communityReloads Cypress when one of the watched files changes
#file-watchercypress-autostub
communityAlleviates the need to mantain brittle manual mocks by automating the recording and stubbing of requests.
#mocking #stubbing #recording #fetch #xhrcypress-plugin-livereload
communityReloads Cypress using livereload
#livereloadcypress-select-tests
communityUser space solution for grepping Cypress tests to run
#browserifycypress-grep
communityFilter tests using its title or tags
#grepcypress-autorecord
communitySimplify API mocking by auto-recording/stubbing HTTP interactions and automating the process of updating/deleting mocks.
#mock #recording #http #integration test@cypress/code-coverage
officialPlugin to save code coverage collected during Cypress tests
#coverage@cypress/instrument-cra
officialNPM module for create-react-app applications to instrument source code without ejecting react-scripts
#coverage@cypress/fiddle
communityQuickly generates Cypress E2E tests from HTML and JS code
#prototypenpm-cy
communityThis GitHub Action for npm enables arbitrary actions with the npm command-line client, including testing with cypress.io and publishing to a registry.
#github #actions #npmvscode-cy-helper
communityVisual Studio Code extension for cypress and cucumber preprocessor
#vscode #extension #intellisensecypress-dotenv
communityCypress plugin that enables compatability with dotenv.
#dotenv #env #environment #env varcypress-har-generator
communityGenerate HTTP Archive (HAR) while running tests.
#har #http-archive #http #websocket #recording #chromecypress-expect-n-assertions
communityCypress helper that checks number of expected and actual assertions in the test
#test #assertioncypress-audit
communityRun Lighthouse audit directly in your E2E test suites
#lighthousecypress-hmr-restarter
communityRestarts tests when receiving webpack-dev-server HMR updates
#webpack #webpack-dev-server #hmr@bahmutov/cypress-extends
communityCypress plugin that adds "extends" support to the configuration file
#configcypress-browser-permissions
communityControls permissions for desktop notifications, geolocation, and other browser APIs
#permissions #notifications #geolocation #camera #microphonecypress-repeat
communityRun Cypress multiple times in a row, great at finding test flake
cypress-expect
communityCypress CLI wrapper where you can specify the total number of expected tests
#clicy-search
communitySearch Cypress documentation from the terminal
#clicypress-tags
communityUse custom tags to slice up Cypress test runs
#test #tag #browserify@swimlane/cy-mockapi
communityEasily mock your REST API in Cypress by putting responses in the fixtures directory tree.
#mock #rest #apicypress-timings
communityA Cypress plugin for reporting individual command timings.
#commands #performancecypress-fail-fast
communityEnables fail fast in Cypress, skipping the rest of tests on first failure.
#fail-fast #failure #skip #configcypress-fail-on-console-error
communityFail cypress test on console error.
#console #error #fail
Custom Commands
cy-view
communityRun tests on multiple URLs at various viewport sizes.
#viewportscypress-unfetch
verifiedTrack, test, and block code execution based on network state.
#commands #routing #networkingcypress-redux
communityRun assertions against Redux stores.
#commands #reduxcypress-axe
communityHelps test your applications for accessibility issues using axe-core.
#accessibility #a11ycypress-drag-drop
communityAdds a cypress child command for drag'n'drop support.
#dragndrop #drag #drop #commandscypress-fill-command
communityA Cypress command for fill inputs
#commandscypress-firebase
communityCustom commands for Firebase including Authentication and Database communication (both Real Time Database and Firestore).
#firebase #database #commandscypress-graphql-mock-network
communityCustom commands to mock your GraphQL API at the network level. Using service-workers for complete isolation of the mock server.
#graphql #mocking #networking #commandscypress-graphql-mock
communityAdds commands for executing a mocked GraphQL server using only the client
#graphqlcy-mobile-commands
communityMobile testing helper for Cypress
#mobile #swipe #touch #commandscypress-pipe
communityCreate custom commands using plain-old functions. Similar to `cy.then` but with retriability.
#commandscypress-downloadfile
communityA custom command to download different kinds of files and store them on your local machine
#commands #downloadingcypress-testing-library
verified🐅 Simple and complete custom Cypress commands and utilities that encourage good testing practices.
#testing-library #dom-testing-library #react-testing-librarycypress-plugin-stripe-elements
communitySimple commands that make it easy to target and fill in Stripe Elements input fields
#stripe #commands #elements #inputscypress-xpath
officialAdds XPath command. This repo is also a good example of using custom commands to do retries, provide TypeScript definitions, etc.
#xpath #commandscypressautomocker
communityAllow recording API results and replaying the APIs as a mock server.
#routing #mockcypress-plugin-tab
experimentalA Cypress plugin to add a tab command
#commandscypress-commands
communityA collection of Cypress commands to extend and complement the defaults
#commandscypress-wait-until
verifiedAdd the Cypress waiting power to virtually everything 🎉
#commands #wait #wait-until #recursive-promise #check-async-value #check-value #open-source-saturdaycypress-recurse
communityA way to re-run Cypress commands until a predicate function returns true
#commands #wait #wait-until #recursive-promise #check-async-value #check-valuecypress-cy-select
communitydata-cy shorthand notation for cypress get and find functions
#commands #shorthand@cypress/skip-test
communitySimple commands to skip a test based on platform, browser or a url
#commandscypress-websocket-testing
communityTest WebSocket connections with Cypress
#commands #websocket@bahmutov/cy-api
communityCypress custom command "cy.api" for HTTP API testing with server logs
#apicy-spok
experimentalAdds assertions from Spok library for easy schema and value validations
#assertionscypress-localstorage-commands
communityCustom commands for localStorage. Allows preserving localStorage between tests
#commands #localstorage #persistence@this-dot/cypress-indexeddb
communityCustom commands for indexedDb. Allows populating, modifying and asserting data stored in indexedDb.
#commands #indexedDbcypress-iframe
communityCustom commands for interacting with iframes
#commands #iframecypress custom commands to locate react elements by component, props and state
#react #commands #locatorcypress-layout-inspector
communityA simple utility to provide layout testing functionality to Cypress via custom assertions.
#testing #ui #dom #assertions@swimlane/cy-dom-diff
communitycy-dom-diff allows matching chunks of DOM against HTML; including dynamic content.
#dom #assertionscypress-real-events
communityFire native system events from Cypress like hover, swipe, etc
#commandscypress-azure-keyvault
communityCypress custom command to get keys from Azure Key Vaults.
#testing #azure #keyvault #secretcypress-rest-graphql
communityAdd visual output and helper functions for performing REST and graphQL queries
#api #rest #graphQLcypress-forced-colors
communityCypress commands to enable and disable browser forced colors mode
#forced colors #high contrast #high contrast mode #contrast #testingcy-verify-downloads
communityCypress custom command to wait and verify that file was downloaded
#commands #assertions #wait #verify #download
Extending other testing frameworks
cyphell
communityConverts WDIO automation tests to Cypress.
#wdiocypress-capybara
communitySeveral Capybara finders re-implemented in Cypress to locate UI elements by their text and labels.
#testing-library #capybaracypress-jest-adapter
communityAdd jest assertion style to Cypress expect command
#jestPickleJS
communityAn addition to the Cucumber plugin, featuring a collection of phrases you can use for common actions (ex: "I click on an <Element>", "I should see an <Element>")
#cucumber #collection #actions #commandsPact Cypress Adapter
communitySimple commands to generate Pact contracts from your existing Cypress tests, maintained by the Pactflow team
#pact #pactflow #contract testing #commands
Authentication
Also take a look at Logging in recipes.
cypress-keycloak-commands
verifiedCypress commands for authenticate users with Keycloak Identity Provider
#authentication #login #keycloak #oauth #openidcypress-ntlm-auth
verifiedNTLM authentication support for Cypress
#authentication #ntlmcypress-otp
communityValid OTP token generation for Cypress
#authentication #otp #2fa #mfacypress-social-logins
communityCypress authentication flows using social network providers
#authentication #login #social profiles #github #google
Framework tooling
Cypress Angular Schematic
communityAngular CLI addition that allows you to install Cypress E2E to an Angular CLI project
#angular #clicypress-on-rails
communityRubygem for using cypress.io with Ruby on Rails applications
#ruby-rack #ruby-on-railsNx
communitySmart, Fast and Extensible Build System
#angular #react #cli #monorepoVue CLI
verifiedVue CLI allows you to scaffold an application with Cypress E2E fully configured
#vue.js #vue #cliCypress Nuxt
communityUtilities for using Cypress with Nuxt.
#vue.js #vue #nuxt #nuxt.jsAurelia CLI
communityThe Aurelia CLI is the official command line tool for Aurelia.
#aurelia #cliWordPress ReactJS Boilerplate
communityComplete WordPress Plugin Boilerplate including Cypress.io E2E tests.
#wp #wordpressNext Right Now - Next.js Boilerplate
communityNext.js boilerplate with Jest/Cypress and CI/CD pipeline built-in (monorepo, multi-tenants)
#next.js #react #monorepo #multi-tenantsElm Batteries Included
communityA project template to learn how Elm, Parcel, Cypress and Netlify work together.
#elm #parcel #netlifycypress-rails
communityRuby gem to run Cypress against Rails apps, replacing Capybara in system tests
#ruby #railscypress-laravel
communityAdd commands and hooks to test Laravel applications
#php #laravelcypress-splitio
communityStores your split.io toggles as environment variables. Helps to decide which e2e tests you need to run.
#split.io #feature flagsBison
communityA Full Stack Jamstack Template that uses Cypress and GitHub Actions for E2E testing.
#next.js #react #graphql #prisma #vercel@cypress/schematic
officialAdds Cypress to your Angular project via the Angular CLI
#angular #cli
Component Testing
⚠️ Loading and mounting components from various frameworks is highly experimental and might change in the future.
cypress-angular-unit-test
experimentalTest Angular component using Cypress Test Runner
#component #angularcypress-angularjs-unit-test
experimentalUnit test Angularjs code using Cypress Test Runner
#component #angular.jscypress-cycle-unit-test
experimentalTest Cycle.js components using Cypress Test Runner
#component #cycle.jscypress-hyperapp-unit-test
experimentalTest Hyperapp components and applications using Cypress Test Runner
#component #hyperapp@cypress/react
experimentalTest React components using Cypress Test Runner
#component #reactcypress-svelte-unit-test
experimentalTest Svelte components using Cypress Test Runner
#component #svelte@cypress/vue
experimentalTest Vue.js components using Cypress Test Runner
#component #vue #vue.js
Visual Testing
Visual testing is a great complement to functional testing
Applitools
verifiedFast, easy and reliable visual UI testing with Cypress
Percy
verifiedVisual regression testing for Cypress tests with Percy.
#screenshots #visual regressionHappo
communityCross-platform, cross-browser screenshot testing for modern user interfaces.
#screenshots #visual regressioncypress-plugin-snapshots
communityPlugin for snapshot tests in Cypress. Same API as Jest, but with graphical interface for reviewing and approving changes.
#snapshotCypress Image Snapshot
communityCatch visual regressions and compare image diffs locally and in Cypress Dashboard.
#image-diff #snapshotCypress Visual Regression
communityAdds visual regression testing to Cypress
#image-diff #snapshotcypress-blink-test
communityModule for adding visual regression testing to Cypress.
#image-diff #snapshotVisual Regression Tracker
communityIntegration with open source service for visual testing and managing its results.
#screenshots #image-diff #visual regressionCypress Image Diff
communityVisual regression testing plugin maintained by DIT - UK Gov.
#screenshots #visual regression #image-diffMicoo
communityCypress plugin for doing visual regression testing with Micoo service
#visual regression testing #visual testing #screenshots comparison #testing serviceCypress Chrome Recorder
experimentalTool for exporting Cypress Tests from Google Chrome DevTools' Recordings
#visual testing #recorder
Reporting
cypress-failed-log
communitySaves the Cypress test command log as a JSON file if a test fails.
#reportercypress-log-to-output
communityPlugin that prints all browser console logs to the terminal while running Cypress tests. Currently, only Chrome is supported.
#loggingTestRail Reporter which auto-set status for specific TestRun for Cypress.
#testrail #reporter #autoset #statuscypress-testrail-reporter
communityCustom reporter for publishing Cypress results to a TestRail test run.
#testrail #reportercypress-teamcity-reporter
communityCustom reporter for Teamcity which makes it possible to display test results in real-time and add them on the Tests tab of the Build Results page
#teamcity #reportermochawesome-merge
communityMerges multiple mochawesome JSON reports
#reporter #mochawesomecypress-slack-healthcheck
communityA simple tool which integrates Cypress with Slack to report failing tests.
#reporter #slack #healthcheckcypress-slack-reporter
communitySlack reporting tool. Uses mochawesome json reports, provides links to VCS Provider (github/bitbucket) and CircleCI logs
#reporter #mochawesome #slackcypress-terminal-report
communityLogs cypress commands, route request data and browser console errors and warnings to terminal when tests fail on CI.
#reporter #logs #terminal #CI #CLIcypress-allure-plugin
communityIntegrates Allure reporter with Cypress. Command logging and screenshot attachment out of the box.
#reporter #allurecypress-mochawesome-reporter
communityZero config Mochawesome reporter for Cypress with screenshots.
#reporter #mochawesome #screenshotcypress-msteams-reporter
communityA reporting tool which sends a message to Microsoft Teams with information about the latest cypress test execution results.
#reporter #ms-teams #allure-report
cypress-mailosaur
communityTest email and SMS messages using Mailosaur
#email #sms #commandscypress-maildev
communityA bunch of Cypress commands in order to test your messages (SMS and Emails) by using Maildev REST API.
#email #sms #commandscypress-mailslurp
communityUse test email accounts to send and receive emails in Cypress tests with MailSlurp.
#email #mailslurp #test #commands
Legacy
Browserify
officialWatches and bundles your spec files via browserify.
#browserify