ChatGPT解决这个技术问题 Extra ChatGPT

安装 jest 时未定义 describe

我在我的项目中安装了jest v24.7.1

npm install jest -D

然后我开始写一些测试文件,但是我得到了这些 eslint 错误:

'describe' is not defined. eslint (no-undef)
'it' is not defined. eslint (no-undef)
'expect' is not defined. eslint (no-undef)

eslintrc.js:

module.exports = {


env: {
    browser: true,
    es6: true
  },
  extends: ["airbnb", "prettier", "prettier/react"],
  globals: {
    Atomics: "readonly",
    SharedArrayBuffer: "readonly"
  },
  parserOptions: {
    ecmaFeatures: {
      jsx: true
    },
    ecmaVersion: 2018,
    sourceType: "module"
  },
  plugins: ["react"],
  rules: {}
};

我应该添加另一个规则或插件来解决这个问题吗?


A
Avinash Singh

.eslintrc.js 文件中添加以下行

"env": {
    "jest": true
}

或者

{
  "plugins": ["jest"]
},
"env": {
  "jest/globals": true
}

有关更多详细信息,请查看 here,它也定义相同。

希望您安装了 eslint-plugin-jest 软件包。如果没有请通过 Documentation

Configuring ESLint 的所有配置详细信息。


如果您使用的是 VS-code,您可能需要通过按 ctrl/command + shift + p 重新启动 Es-lint 服务器,然后在命令解释器中搜索 Restart Eslint 并单击以继续 eslint 服务器。
T
Trapenok Victor

在文件头部添加以下注释行

/* globals describe, expect, it */ 

a
avalanche1

对于 jest 27,所有这些都不应该是必要的。
杀死 node_modules & package-lock.json
然后运行 npm i


谢谢!这对我有用...
A
Atuhaire Collins

/* eslint-disable no-undef */ 添加到测试文件的顶部。

示例.test.js

/* eslint-disable no-undef */
function sum(a, b) {
  return a + b;
}

describe("adds 1 + 2 to equal 3", () => {
  expect(sum(1, 2)).toBe(3);
});