我正在使用Jest编写一些规范,并使用ESLint编写样式。
对于我的foo.spec.js
测试,eslint不断抛出以下错误。似乎认为jest
,beforeEach
,afterEach
等在该文件中未定义。
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文件中显式导入它们。实际上,我通过jest.setup.js
文件导入的唯一内容是
import "react-testing-library/cleanup-after-each";
import "jest-dom/extend-expect";
有没有一种方法可以消除这些错误而不必禁用每个文件或内联文件顶部的eslint规则?
谢谢!
答案 0 :(得分:5)
您无需添加此覆盖选项并指定 jest
应在哪些文件中可用。仅添加 env
字段就足够了。
.eslintrc.js:
module.exports = {
env: {
jest: true
},
//...
}
答案 1 :(得分:1)
请在您的.eslintrc文件中添加以下内容:
"env": {
"jest": true
}
答案 2 :(得分:1)
eslint在其中包含一些jest.mocks的jest setup.js文件中抛出了no-undef错误时也遇到了类似的问题。
最终使用ESLint plugin for Jest对其进行了修复。
将插件安装为dev依赖项后,按照插件自述文件中的说明,将以下内容合并到.eslintrc配置文件中。
{
"extends": ["plugin:jest/recommended"],
"plugins": ["jest"]
}
然后no-undef错误消失了。