An ESLint plugin for your Cypress tests.
Specifies globals for Cypress cy, Cypress, browser and mocha globals.
npm install eslint-plugin-cypress --save-devAdd an .eslintrc.json file to your cypress directory with the following:
// my-project/cypress/.eslintrc.json
{
"plugins": [
"cypress"
],
"extends": [
"plugin:cypress/recommended"
],
"env": {
"cypress/globals": true
}
}Rules are grouped by category to help you understand their purpose.
Rules with a check mark (✅) are enabled by default while using
the plugin:cypress/recommended config.
The --fix option on the command line automatically fixes problems reported by rules which have a wrench (🔧) below.
| Rule ID | Description | |
|---|---|---|
| ✅ | no-assigning-return-values | Prevent assigning return values of cy calls |
| ✅ | no-unnecessary-waiting | Prevent waiting for arbitrary time periods |
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-friendlyIn your .eslintrc.json:
{
"plugins": [
"cypress",
"chai-friendly"
],
"rules": {
"no-unused-expressions": 0,
"chai-friendly/no-unused-expressions": 2
}
}To add a new rule:
- Fork and clone this repository
- Generate a new rule (a yeoman generator is available)
- Run
yarn startornpm start - Write test scenarios then implement logic
- Describe the rule in the generated
docsfile - Make sure all tests are passing
- Add the rule to this README
- Create a PR