Cypress ESLint 插件 
注意: 如果您在全球安装了 ESLint, 您也必须安装 eslint-plugin-cypress 在全球.
安装
npm install eslint-plugin-cypress --save-dev
或者说
yarn add eslint-plugin-cypress --dev
使用量
添加一个 .eslintrc.json 转到您的文件 cypress 含有下列内容的目录 :
{
"plugins": [
"cypress"
]
}
您可以添加规则 :
{
"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",
"cypress/no-pause": "error"
}
}
您可以允许 Cypress 提供的某些全局 :
{
"env": {
"cypress/globals": true
}
}
建议配置
使用推荐配置并可以放弃配置 插件, (中文(简体) ), 规则,以及 环境 个人。 见下文所列规则.
{
"extends": [
"plugin:cypress/recommended"
]
}
禁用规则
您可以禁用每个文件的特定规则, 用于文件的一部分, 或者用于单行 .
禁用 cypress/no-unnecessary-waiting 规则整个文件, 将其放在文件的开头 :
/* eslint-disable cypress/no-unnecessary-waiting */
禁用 cypress/no-unnecessary-waiting 规则文件的一部分 :
it('waits for a second', () => {
...
/* eslint-disable cypress/no-unnecessary-waiting */
cy.wait(1000)
/* eslint-enable cypress/no-unnecessary-waiting */
...
})
禁用 cypress/no-unnecessary-waiting 特定行的规则 :
it('waits for a second', () => {
...
cy.wait(1000) // eslint-disable-line cypress/no-unnecessary-waiting
...
})
您也可以禁用下一行的规则 :
it('waits for a second', () => {
...
// eslint-disable-next-line cypress/no-unnecessary-waiting
cy.wait(1000)
...
})
更多,请看 ESLint规则 文档.
规则
这些规则执行了一些 建议使用Cypress的最佳做法。 。 。 .
默认情况下启用带有检查标记(QQ)的规则 plugin:cypress/recommended 相会.
| 规则ID | 说明 | |
|---|---|---|
| ✅ | 无指定返回值 | 防止分配 cy 呼叫的返回值 |
| ✅ | 无需等待 | 防止等待任意的时间段 |
| ✅ | 无同步测试 | 在 Cypress 测试中防止使用合成/等待 |
| 无武力 | 放弃使用 force: true 有动作命令 | |
| 截图前 | 确保截图前有断言 | |
| 需要的数据选择器 | 只允许数据 * 属性选择器( 需要数据- 选择器) | |
| 无暂停 | 否定 cy.pause() 父命令 | |
| 没有单一的预期,或者应该 | 通过避免孤独的预期来简化测试() | |
| 无预期的 stub | 避免预期( stub).. | |
| 没有无用的时候,或者应该 | 避免 .should() 财务报告和审定财务报表 .then() 仅覆盖命令时 |
柴和华 no-unused-expressions
例如 expect(value).to.be.true 可以失败 ESLint 规则 no-unused-expressions 虽此中无有出错. 要解决这个问题,你可以安装和使用 爱斯林特-plugin-chai 友好型。 。 。 .
npm install --save-dev eslint-plugin-chai-friendly
在你身边 .eslintrc.json数字 :
{
"plugins": [
"cypress",
"chai-friendly"
],
"rules": {
"no-unused-expressions": 0,
"chai-friendly/no-unused-expressions": 2
}
}
或者你可以简单地添加它 recommended 配置 :
{
"extends": ["plugin:chai-friendly/recommended"]
}
贡献指南
增加一条新规则:
- 叉并克隆此寄存器
- 安装依赖关系
npm install - 生成一条新规则
npm run make-rule - 运行
yarn start或者说npm start - 写入测试方案然后执行逻辑
- 在生成的规则中描述
docs文件 - 保证所有测试都通过
- 在此读取规则
- 创建 PR
使用下列承诺信息公约: https://github.com/semantic-release/semantic-release#commit-message-format 互联网档案馆的存檔,存档日期2013-12-21