cypress和cy在commands.js中未定义,但一切正常

uinbv5nw  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(452)

在中键入自定义命令时 commands.js webstorm的linter说 Cypresscy 未定义,不提供任何智能感知。两者在任何情况下都有完美的定义 integration 文件夹。
commands.js

Cypress.Commands.add('command', () => {
  cy.get('div');
});

// ESLint: 'Cypress' is not defined.(no-undef)
// ESLint: 'cy' is not defined.(no-undef)

index.js

import './commands.js'

此错误不会出现在vscode中。相反,两者都有 Cypresscy 定义为 any .
但是,不管这个错误如何,测试都可以正常工作。
我该怎么做才能让linter识别自己文件中的cypress?

i7uq4tfw

i7uq4tfw1#

我找到了一些解决办法。

添加引用

将其放在每个文件测试脚本的顶部

/// <reference types="cypress" />

eslint扩展 yarn add -D eslint-plugin-cypress (https://github.com/cypress-io/eslint-plugin-cypress)

将这些行添加到 .eslintrc ```
{
"extends": [
"plugin:cypress/recommended"
]
}


### 在eslintrc全局中指定cy

{
"globals": {
"cy": true
}
}

将此添加到 `.eslintrc` cy是一个全局变量。很像地理位置。所以说真的是window.cy。您可以将其添加到eslint中的globals。不要从柏树上进口cy。
参考:eslint:未定义“cy”(cypress)

相关问题