cypress / 9.4.1 / plugins / directory.html /

Plugins

Plugins provide a way to support and extend the behavior of Cypress. Follow these instructions to submit your own plugin.

Plugin Types

Preprocessors

  • Browserify

    official

    Watches and bundles your spec files via browserify. This is the default preprocessor that's built into Cypress.

    #browserify
  • Cucumber

    community

    Run cucumber/gherkin-syntaxed specs with cypress.io

    #file-watcher #cucumber
  • Reruns Cypress tests when the back end server restarts

    #file-watcher
  • Runs linting via ESLint on your spec files as they are loaded and display errors in the console

    #eslint
  • Watch

    official

    Watches your spec files and serves them as-is. Useful as an example reference or if you don't need transpiling/bundling.

    #file-watcher
  • Webpack

    official

    Watches and bundles your spec files via webpack.

    #webpack
  • Rollup

    community

    Watches and bundles your spec files via Rollup

    #rollup
  • Cypress preprocessor for extracting tests from Markdown files

    #markdown
  • Cypress preprocessor for bundling JavaScript via rollup

    #rollup
  • Bundle Cypress specs using esbuild

    #esbuild
  • Uses evanw/esbuild to bundle your specs.

    #esbuild

Development Tools

  • Official Cypress Orb for CircleCI configuration.

    #continuous-integration
  • cypress-dark

    verified

    Several color themes for Cypress test runner

    #theme
  • cypress-protobuf

    community

    Encode a fixture with Protocol Buffers.

    #encoding #protobuf
  • Docker

    official

    Docker images providing all the dependencies to run Cypress in CI including browsers.

    #docker #continuous-integration
  • ESLint plugin that sets globals for writing tests in Cypress.

    #eslint
  • Dynamic 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-integration
  • TypeScript

    official

    Official TypeScript definitions for the Cypress API.

    #typescript
  • cly

    community

    A prototype of generating quicker project scaffolding for Cypress.

    #cypress cli #prototype #CLI #scaffolding
  • Reloads Cypress when one of the watched files changes

    #file-watcher
  • cypress-autostub

    community

    Alleviates the need to mantain brittle manual mocks by automating the recording and stubbing of requests.

    #mocking #stubbing #recording #fetch #xhr
  • Reloads Cypress using livereload

    #livereload
  • User space solution for grepping Cypress tests to run

    #browserify
  • cypress-grep

    community

    Filter tests using its title or tags

    #grep
  • cypress-autorecord

    community

    Simplify API mocking by auto-recording/stubbing HTTP interactions and automating the process of updating/deleting mocks.

    #mock #recording #http #integration test
  • Plugin to save code coverage collected during Cypress tests

    #coverage
  • NPM module for create-react-app applications to instrument source code without ejecting react-scripts

    #coverage
  • @cypress/fiddle

    official

    Quickly generates Cypress tests from HTML and JS code

    #prototype
  • npm-cy

    community

    This 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 #npm
  • vscode-cy-helper

    community

    Visual Studio Code extension for cypress and cucumber preprocessor

    #vscode #extension #intellisense
  • cypress-dotenv

    community

    Cypress plugin that enables compatability with dotenv.

    #dotenv #env #environment #env var
  • Generate HTTP Archive (HAR) while running tests.

    #har #http-archive #http #websocket #recording #chrome
  • Cypress helper that checks number of expected and actual assertions in the test

    #test #assertion
  • cypress-audit

    community

    Run Lighthouse audit directly in your E2E test suites

    #lighthouse
  • Restarts tests when receiving webpack-dev-server HMR updates

    #webpack #webpack-dev-server #hmr
  • Cypress plugin that adds "extends" support to the configuration file

    #config
  • Controls permissions for desktop notifications, geolocation, and other browser APIs

    #permissions #notifications #geolocation #camera #microphone
  • cypress-repeat

    community

    Run Cypress multiple times in a row, great at finding test flake

  • cypress-expect

    community

    Cypress CLI wrapper where you can specify the total number of expected tests

    #cli
  • cy-search

    community

    Search Cypress documentation from the terminal

    #cli
  • cypress-tags

    community

    Use custom tags to slice up Cypress test runs

    #test #tag #browserify
  • Easily mock your REST API in Cypress by putting responses in the fixtures directory tree.

    #mock #rest #api
  • cypress-timings

    community

    A Cypress plugin for reporting individual command timings.

    #commands #performance
  • cypress-fail-fast

    community

    Enables fail fast in Cypress, skipping the rest of tests on first failure.

    #fail-fast #failure #skip #config
  • Fail cypress test on console error.

    #console #error #fail

Custom Commands

  • cy-view

    community

    Run tests on multiple URLs at various viewport sizes.

    #viewports
  • cypress-unfetch

    verified

    Track, test, and block code execution based on network state.

    #commands #routing #networking
  • cypress-redux

    community

    Run assertions against Redux stores.

    #commands #redux
  • cypress-axe

    community

    Helps test your applications for accessibility issues using axe-core.

    #accessibility #a11y
  • cypress-drag-drop

    community

    Adds a cypress child command for drag'n'drop support.

    #dragndrop #drag #drop #commands
  • A Cypress command for fill inputs

    #commands
  • cypress-firebase

    community

    Custom commands for Firebase including Authentication and Database communication (both Real Time Database and Firestore).

    #firebase #database #commands
  • Custom commands to mock your GraphQL API at the network level. Using service-workers for complete isolation of the mock server.

    #graphql #mocking #networking #commands
  • Adds commands for executing a mocked GraphQL server using only the client

    #graphql
  • cy-mobile-commands

    community

    Mobile testing helper for Cypress

    #mobile #swipe #touch #commands
  • cypress-pipe

    community

    Create custom commands using plain-old functions. Similar to `cy.then` but with retriability.

    #commands
  • A custom command to download different kinds of files and store them on your local machine

    #commands #downloading
  • 🐅 Simple and complete custom Cypress commands and utilities that encourage good testing practices.

    #testing-library #dom-testing-library #react-testing-library
  • Simple commands that make it easy to target and fill in Stripe Elements input fields

    #stripe #commands #elements #inputs
  • cypress-xpath

    official

    Adds XPath command. This repo is also a good example of using custom commands to do retries, provide TypeScript definitions, etc.

    #xpath #commands
  • cypressautomocker

    community

    Allow recording API results and replaying the APIs as a mock server.

    #routing #mock
  • cypress-plugin-tab

    experimental

    A Cypress plugin to add a tab command

    #commands
  • cypress-commands

    community

    A collection of Cypress commands to extend and complement the defaults

    #commands
  • Add the Cypress waiting power to virtually everything 🎉

    #commands #wait #wait-until #recursive-promise #check-async-value #check-value #open-source-saturday
  • cypress-recurse

    community

    A way to re-run Cypress commands until a predicate function returns true

    #commands #wait #wait-until #recursive-promise #check-async-value #check-value
  • cypress-cy-select

    community

    data-cy shorthand notation for cypress get and find functions

    #commands #shorthand
  • Simple commands to skip a test based on platform, browser or a url

    #commands
  • Test WebSocket connections with Cypress

    #commands #websocket
  • @bahmutov/cy-api

    community

    Cypress custom command "cy.api" for HTTP API testing with server logs

    #api
  • cy-spok

    experimental

    Adds assertions from Spok library for easy schema and value validations

    #assertions
  • Custom commands for localStorage. Allows preserving localStorage between tests

    #commands #localstorage #persistence
  • cypress-iframe

    community

    Custom commands for interacting with iframes

    #commands #iframe
  • cypress custom commands to locate react elements by component, props and state

    #react #commands #locator
  • A simple utility to provide layout testing functionality to Cypress via custom assertions.

    #testing #ui #dom #assertions
  • cy-dom-diff allows matching chunks of DOM against HTML; including dynamic content.

    #dom #assertions
  • Fire native system events from Cypress like hover, swipe, etc

    #commands
  • Cypress custom command to get keys from Azure Key Vaults.

    #testing #azure #keyvault #secret
  • Add visual output and helper functions for performing REST and graphQL queries

    #api #rest #graphQL

Extending other testing frameworks

  • cyphell

    community

    Converts WDIO automation tests to Cypress.

    #wdio
  • cypress-capybara

    community

    Several Capybara finders re-implemented in Cypress to locate UI elements by their text and labels.

    #testing-library #capybara
  • Add jest assertion style to Cypress expect command

    #jest
  • PickleJS

    community

    An 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 #commands

Authentication

Also take a look at Logging in recipes.

  • Cypress commands for authenticate users with Keycloak Identity Provider

    #authentication #login #keycloak #oauth #openid
  • NTLM authentication support for Cypress

    #authentication #ntlm
  • cypress-otp

    community

    Valid OTP token generation for Cypress

    #authentication #otp #2fa #mfa
  • Cypress authentication flows using social network providers

    #authentication #login #social profiles #github #google

Framework tooling

  • Angular CLI addition that allows you to install Cypress E2E to an Angular CLI project

    #angular #cli
  • cypress-on-rails

    community

    Rubygem for using cypress.io with Ruby on Rails applications

    #ruby-rack #ruby-on-rails
  • Nx

    community

    Smart, Fast and Extensible Build System

    #angular #react #cli #monorepo
  • Vue CLI

    verified

    Vue CLI allows you to scaffold an application with Cypress E2E fully configured

    #vue.js #vue #cli
  • Cypress Nuxt

    community

    Utilities for using Cypress with Nuxt.

    #vue.js #vue #nuxt #nuxt.js
  • Aurelia CLI

    community

    The Aurelia CLI is the official command line tool for Aurelia.

    #aurelia #cli
  • Complete WordPress Plugin Boilerplate including Cypress.io E2E tests.

    #wp #wordpress
  • Next.js boilerplate with Jest/Cypress and CI/CD pipeline built-in (monorepo, multi-tenants)

    #next.js #react #monorepo #multi-tenants
  • A project template to learn how Elm, Parcel, Cypress and Netlify work together.

    #elm #parcel #netlify
  • cypress-rails

    community

    Ruby gem to run Cypress against Rails apps, replacing Capybara in system tests

    #ruby #rails
  • cypress-laravel

    community

    Add commands and hooks to test Laravel applications

    #php #laravel
  • cypress-splitio

    community

    Stores your split.io toggles as environment variables. Helps to decide which e2e tests you need to run.

    #split.io #feature flags
  • Bison

    community

    A Full Stack Jamstack Template that uses Cypress and GitHub Actions for E2E testing.

    #next.js #react #graphql #prisma #vercel
  • Adds 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.

  • Test Angular component using Cypress Test Runner

    #component #angular
  • Unit test Angularjs code using Cypress Test Runner

    #component #angular.js
  • Test Cycle.js components using Cypress Test Runner

    #component #cycle.js
  • Test Hyperapp components and applications using Cypress Test Runner

    #component #hyperapp
  • @cypress/react

    experimental

    Test React components using Cypress Test Runner

    #component #react
  • Test Svelte components using Cypress Test Runner

    #component #svelte
  • @cypress/vue

    experimental

    Test Vue.js components using Cypress Test Runner

    #component #vue #vue.js

Visual Testing

Visual testing is a great complement to functional testing

  • Applitools

    verified

    Fast, easy and reliable visual UI testing with Cypress

  • Percy

    verified

    Visual regression testing for Cypress tests with Percy.

    #screenshots #visual regression
  • Happo

    community

    Cross-platform, cross-browser screenshot testing for modern user interfaces.

    #screenshots #visual regression
  • Plugin for snapshot tests in Cypress. Same API as Jest, but with graphical interface for reviewing and approving changes.

    #snapshot
  • Catch visual regressions and compare image diffs locally and in Cypress Dashboard.

    #image-diff #snapshot
  • Adds visual regression testing to Cypress

    #image-diff #snapshot
  • cypress-blink-test

    community

    Module for adding visual regression testing to Cypress.

    #image-diff #snapshot
  • Integration with open source service for visual testing and managing its results.

    #screenshots #image-diff #visual regression
  • Cypress Image Diff

    community

    Visual regression testing plugin maintained by DIT - UK Gov.

    #screenshots #visual regression #image-diff
  • Micoo

    community

    Cypress plugin for doing visual regression testing with Micoo service

    #visual regression testing #visual testing #screenshots comparison #testing service

Reporting

  • cypress-failed-log

    community

    Saves the Cypress test command log as a JSON file if a test fails.

    #reporter
  • Plugin that prints all browser console logs to the terminal while running Cypress tests. Currently, only Chrome is supported.

    #logging
  • TestRail Reporter which auto-set status for specific TestRun for Cypress.

    #testrail #reporter #autoset #status
  • Custom reporter for publishing Cypress results to a TestRail test run.

    #testrail #reporter
  • Custom 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 #reporter
  • mochawesome-merge

    community

    Merges multiple mochawesome JSON reports

    #reporter #mochawesome
  • A simple tool which integrates Cypress with Slack to report failing tests.

    #reporter #slack #healthcheck
  • Slack reporting tool. Uses mochawesome json reports, provides links to VCS Provider (github/bitbucket) and CircleCI logs

    #reporter #mochawesome #slack
  • Logs cypress commands, route request data and browser console errors and warnings to terminal when tests fail on CI.

    #reporter #logs #terminal #CI #CLI
  • Integrates Allure reporter with Cypress. Command logging and screenshot attachment out of the box.

    #reporter #allure
  • Zero config Mochawesome reporter for Cypress with screenshots.

    #reporter #mochawesome #screenshot
  • A reporting tool which sends a message to Microsoft Teams with information about the latest cypress test execution results.

    #reporter #ms-teams #allure-report

Email

  • cypress-mailosaur

    community

    Test email and SMS messages using Mailosaur

    #email #sms #commands
  • cypress-maildev

    community

    A bunch of Cypress commands in order to test your messages (SMS and Emails) by using Maildev REST API.

    #email #sms #commands
  • cypress-mailslurp

    community

    Use test email accounts to send and receive emails in Cypress tests with MailSlurp.

    #email #mailslurp #test #commands

© 2017 Cypress.io
Licensed under the MIT License.
https://docs.cypress.io/plugins/directory