eslint-plugin-cypress
An ESLint plugin for projects using Cypress
Last updated 4 months ago by cypress-npm-publisher .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install eslint-plugin-cypress 
SYNC missed versions from official npm registry.

Cypress ESLint Plugin CircleCI

An ESLint plugin for your Cypress tests.

Note: If you installed ESLint globally then you must also install eslint-plugin-cypress globally.

Installation

npm install eslint-plugin-cypress --save-dev

or

yarn add eslint-plugin-cypress --dev

Usage

Add an .eslintrc.json file to your cypress directory with the following:

{
  "plugins": [
    "cypress"
  ]
}

You can add rules:

{
  "rules": {
    "cypress/no-assigning-return-values": "error",
    "cypress/no-unnecessary-waiting": "error",
    "cypress/assertion-before-screenshot": "warn",
    "cypress/no-force": "warn",
    "cypress/no-async-tests": "error"
  }
}

You can allow certain globals provided by Cypress:

{
  "env": {
    "cypress/globals": true
  }
}

Recommended configuration

Use the recommended configuration and you can forego configuring plugins, rules, and env individually. See below for which rules are included.

{
  "extends": [
    "plugin:cypress/recommended"
  ]
}

Rules

These rules enforce some of the best practices recommended for using Cypress.

Rules with a check mark (✅) are enabled by default while using the plugin:cypress/recommended config.

NOTE: These rules currently require eslint 5.0 or greater. If you would like support added for eslint 4.x, please ???? this issue.

Rule ID Description
no-assigning-return-values Prevent assigning return values of cy calls
no-unnecessary-waiting Prevent waiting for arbitrary time periods
no-async-tests Prevent using async/await in Cypress test case
no-force Disallow using force: true with action commands
assertion-before-screenshot Ensure screenshots are preceded by an assertion
require-data-selectors Only allow data-* attribute selectors (require-data-selectors)

Chai and no-unused-expressions

Using an assertion such as expect(value).to.be.true can fail the ESLint rule no-unused-expressions even though it's not an error in this case. To fix this, you can install and use eslint-plugin-chai-friendly.

npm install --save-dev eslint-plugin-chai-friendly

In your .eslintrc.json:

{
  "plugins": [
    "cypress",
    "chai-friendly"
  ],
  "rules": {
    "no-unused-expressions": 0,
    "chai-friendly/no-unused-expressions": 2
  }
}

Or you can simply add its recommended config:

{
  "extends": ["plugin:chai-friendly/recommended"]
}

Contribution Guide

To add a new rule:

  • Fork and clone this repository
  • Generate a new rule (a yeoman generator is available)
  • Run yarn start or npm start
  • Write test scenarios then implement logic
  • Describe the rule in the generated docs file
  • Make sure all tests are passing
  • Add the rule to this README
  • Create a PR

Use the following commit message conventions: https://github.com/semantic-release/semantic-release#commit-message-format

Current Tags

  • 2.11.2                                ...           latest (4 months ago)

23 Versions

  • 2.11.2                                ...           4 months ago
  • 2.11.1                                ...           8 months ago
  • 2.11.0                                ...           8 months ago
  • 2.10.3                                ...           a year ago
  • 2.10.2                                ...           a year ago
  • 2.10.1                                ...           a year ago
  • 2.10.0                                ...           a year ago
  • 2.9.0                                ...           a year ago
  • 2.8.1                                ...           a year ago
  • 2.8.0                                ...           a year ago
  • 2.7.0                                ...           a year ago
  • 2.6.1                                ...           a year ago
  • 2.6.0                                ...           2 years ago
  • 2.2.1                                ...           2 years ago
  • 2.2.0                                ...           2 years ago
  • 2.1.3                                ...           2 years ago
  • 2.1.2                                ...           2 years ago
  • 2.1.1                                ...           2 years ago
  • 2.1.0                                ...           2 years ago
  • 2.0.1                                ...           3 years ago
  • 2.0.0                                ...           3 years ago
  • 1.1.0                                ...           3 years ago
  • 1.0.0                                ...           3 years ago
Downloads
Today 198
This Week 6,051
This Month 14,289
Last Day 1,788
Last Week 7,367
Last Month 35,140
Dependencies (1)
Dev Dependencies (7)
Dependents (156)

Copyright 2014 - 2016 © taobao.org |