Plugins

Improve this doc

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

Looking for the API docs?

Check out our Plugins Guide or our API docs for writing a plugin.

Plugin Types

Authentication

Also take a look at "Logging in" recipes.

  • cypress-ntlm-auth

    NTLM authentication support for Cypress

    #authentication #ntlm
  • cypress-otp

    Valid OTP token generation for Cypress

    #authentication #otp #2fa #mfa
  • cypress-social-logins

    Cypress authentication flows using social network providers

    #authentication #login #social profiles #github #google

Component Testing

⚠️ Loading and mounting components from various frameworks is highly experimental and might change in the future.

Custom Commands

  • cy-view

    Run tests on multiple URLs at various viewport sizes.

    #viewports
  • cypress-axe

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

    #accessibility #a11y
  • cypress-commands

    A collection of Cypress commands to extend and compliment the defaults

    #commands
  • cypress-drag-drop

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

    #dragndrop #drag #drop #commands
  • cypress-file-upload

    Simple custom command to ease file upload testing

    #fileupload #file #upload #commands
  • cypress-firebase

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

    #firebase #database #commands
  • cypress-graphql-mock

    Adds commands for executing a mocked GraphQL server using only the client

    #graphql
  • cypress-pipe

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

    #commands
  • cypress-plugin-tab

    A Cypress plugin to add a tab command

    #commands
  • cypress-testing-library

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

    #testing-library #dom-testing-library #react-testing-library
  • cypress-wait-until

    Add the Cypress waiting power to virtually everything 🎉

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

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

    #xpath #commands
  • cypressautomocker

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

    #routing #mock

Development Tools

  • CircleCI Cypress Orb

    Official Cypress Orb for CircleCI configuration.

    #continuous-integration
  • cly

    A prototype of generating quicker project scaffolding for Cypress.

    #cypress cli #prototype #CLI #scaffolding
  • cypress-autorecord

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

    #mock #recording #http #integration test
  • cypress-dark

    Several color themes for Cypress test runner

    #theme
  • cypress-plugin-retries

    A Cypress plugin to retry failed tests.

    #cypress-plugin-retries
  • cypress-protobuf

    Encode a fixture with Protocol Buffers.

    #encoding #protobuf
  • cypress-select-tests

    User space solution for grepping Cypress tests to run

    #browserify
  • cypress-watch-and-reload

    Reloads Cypress when one of the watched files changes

    #file-watcher
  • Docker

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

    #docker #continuous-integration
  • ESLint

    ESLint plugin that sets globals for writing tests in Cypress.

    #eslint
  • Knapsack Pro Cypress

    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 TypeScript definitions for the Cypress API.

    #typescript

Extending other testing frameworks

  • cyphell

    Converts WDIO automation tests to Cypress.

    #wdio
  • cypress-capybara

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

    #testing-library #capybara
  • cypress-jest-adapter

    Add jest assertion style to Cypress expect command

    #jest
  • PickleJS

    An addition to the Cucumber plugin, featuring a collection of phrases you can use for common actions (ex: "I click on an ", "I should see an ")

    #cucumber #collection #actions #commands

Framework tooling

  • Cypress Angular Schematic

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

    #angular #cli
  • Cypress Daywalker

    Shadow Dom support for cypress

    #Polymer #lit-html #ShadowDom
  • cypress-on-rails

    Rubygem for using cypress.io with Ruby on Rails applications

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

    Nrwl Extensions for Angular

    #angular #cli
  • Vue CLI

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

    #vue.js #vue #cli

Preprocessors

  • Browserify

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

    #browserify
  • Cucumber

    Run cucumber/gherkin-syntaxed specs with cypress.io

    #file-watcher #cucumber
  • cypress-app-watcher-preprocessor

    Reruns Cypress tests when the backend server restarts

    #file-watcher
  • ESLint

    Runs linting via ESLint on your spec files as they are loaded and display errors in the console

    #eslint
  • Watch

    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

    Watches and bundles your spec files via webpack.

    #webpack

Reporting

  • cypress-failed-log

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

    #reporter
  • cypress-log-to-output

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

    #logging
  • cypress-slack-healthcheck

    A simple tool which integrates Cypress with Slack to report failing tests.

    #reporter #slack #healthcheck
  • cypress-slack-reporter

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

    #reporter #mochawesome #slack
  • cypress-testrail-reporter

    Custom reporter for publishing Cypress results to a TestRail test run.

    #testrail #reporter
  • mochawesome-merge

    Merges multiple mochawesome JSON reports

    #reporter #mochawesome

Visual Testing

  • Applitools

    Fast, easy and reliable visual UI testing with Cypress

  • Cypress Image Snapshot

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

    #image-diff #snapshot
  • Cypress Visual Regression

    Adds visual regression testing to Cypress

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

    Module for adding visual regression testing to Cypress.

    #image-diff #snapshot
  • cypress-plugin-snapshots

    Plugin for snapshot tests in Cypress.io. Same API as Jest, but with graphical interface for reviewing and approving changes.

    #snapshot
  • Percy

    Visual regression testing for Cypress tests with Percy.

    #screenshots #visual regression