当lint Jest测试文件时,eslint抛出'no-undef'错误

cnh2zyt3  于 2022-12-16  发布在  Jest
关注(0)|答案(4)|浏览(239)

我用Jest写一些规格,用ESLint写样式。
对于我的foo.spec.js测试,eslint不断抛出以下错误,它似乎认为jestbeforeEachafterEach等......没有在那个文件中定义。

11:1   error  'beforeEach' is not defined  no-undef
   12:3   error  'jest' is not defined        no-undef
   14:13  error  'jest' is not defined        no-undef
   18:1   error  'afterEach' is not defined   no-undef
   20:1   error  'describe' is not defined    no-undef
   21:3   error  'it' is not defined          no-undef
   25:5   error  'expect' is not defined      no-undef
   28:5   error  'expect' is not defined      no-undef
   31:5   error  'expect' is not defined      no-undef
   34:3   error  'it' is not defined          no-undef
   38:5   error  'expect' is not defined      no-undef
   41:5   error  'jest' is not defined        no-undef
   42:5   error  'expect' is not defined      no-undef
   43:5   error  'expect' is not defined      no-undef
   46:3   error  'it' is not defined          no-undef
   54:5   error  'expect' is not defined      no-undef
   58:5   error  'jest' is not defined        no-undef

我相信这些都是jest自动包含的,所以它们不需要显式地导入到我的spec文件中。

import "react-testing-library/cleanup-after-each";
import "jest-dom/extend-expect";

有没有一种方法可以消除这些错误,而不必在每个文件的顶部或行内禁用eslint规则?
谢谢!

mf98qq94

mf98qq941#

请将以下内容添加到.eslintrc文件中:

{
  "overrides": [
    {
      "files": [
        "**/*.spec.js",
        "**/*.spec.jsx"
      ],
      "env": {
        "jest": true
      }
    }
  ]
}
vbopmzt1

vbopmzt12#

您不需要添加此覆盖选项并指定jest在哪些文件中可用。仅添加env字段就足够了。

**.西班牙司法协会

module.exports = {
  env: {
    jest: true
  },
//...
}
2j4z5cfb

2j4z5cfb3#

我的jest setup.js文件中有一些jest. mock,eslint也有类似的问题,会抛出no-undef错误。
最后用ESLint plugin for Jest修好了。
在安装插件作为开发依赖项后,我按照插件自述文件中的说明将以下内容合并到我的.eslintrc配置文件中。

{
  "extends": ["plugin:jest/recommended"],
  "plugins": ["jest"]
}

然后,非未定义错误消失。

xfyts7mz

xfyts7mz4#

因为我使用的是StandardJS Linter,所以所有建议的解决方案都不起作用,相反,我必须在标准配置中为“it”定义一个全局变量。
例如,以package.json为单位:

...
  "standard": {
    "parser": "babel-eslint",
    "globals": [
      "afterAll",
      "beforeAll",
      "afterEach",
      "jasmine",
      "describe",
      "test",
      "jest",
      "expect",
      "it"
    ]
 }
...

相关问题