@finsit/eslint-plugin-cypress

中文文档
3.1.1发布于 2022/07/05MITCommonJS近 30 天下载 12.3万

Cypress 项目的 ESLint 插件

中文使用文档
文档目录7 节
  1. 安装
  2. 使用量
  3. 建议配置
  4. 禁用规则
  5. 规则
  6. 柴和华 no-unused-expressions
  7. 贡献指南

Cypress ESLint 插件 Test

一个 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

版本与发布记录

@finsit/eslint-plugin-cypress 共发布 4 个版本,首次发布于 2022/06/28;过去 12 个月发布了 0 个版本。

版本发布日期距今
3.1.1latest2022/07/054 年前
3.1.02022/07/014 年前
3.0.22022/06/284 年前
3.0.12022/06/284 年前

关于 @finsit/eslint-plugin-cypress 的常见问题

@finsit/eslint-plugin-cypress 是什么?

Cypress 项目的 ESLint 插件

如何安装 @finsit/eslint-plugin-cypress?

在项目目录运行 npm install @finsit/eslint-plugin-cypress,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:eslint(>= 7.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@finsit/eslint-plugin-cypress 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/finsit__eslint-plugin-cypress 是否存在。

@finsit/eslint-plugin-cypress 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@finsit/eslint-plugin-cypress 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=8.10.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@finsit/eslint-plugin-cypress 可以商用吗?

@finsit/eslint-plugin-cypress 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@finsit/eslint-plugin-cypress 的下载量有多少?

根据 npm 官方下载统计,@finsit/eslint-plugin-cypress 在 2026/10/15 – 2026/11/13 这 30 天内被下载 122,640 次,日均约 4,088 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@finsit/eslint-plugin-cypress 还在维护吗?

最新版本 3.1.1 发布于 2022/07/05(4 年前);至今共发布 4 个版本,其中过去 12 个月发布了 0 个;首次发布于 2022/06/28。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。