如何配置ESLint通用测试全局变量?解决'suite'未定义报错
ESLint无法识别
suite全局变量,求通用测试全局配置方案 我用的测试库允许使用suite,但在eslint.config.js中配置了Jest全局变量后,test能正常被识别,suite却报未定义错误。想问问有没有能覆盖多数通用测试全局变量的ESLint全局配置?
我的ESLint配置代码:
import eslint from "@eslint/js"; import globals from "globals"; export default [ // apply recommended rules to JS files { languageOptions: { globals: { ...globals.browser, ...globals.jest } } }, { files: ["**/*.js", "**/*.cjs", "**/*.mjs"], rules: eslint.configs.recommended.rules }, { ignores: ["rollup.config.js", "web-test-runner.config.js", "src/index.bundle.js"] } ]
报错信息:
/Users/oleersoy/Temp/Remove/fs-javascript-starter/src/hello-world.component.spec.js 4:1 error 'suite' is not defined no-undef ✖ 1 problem (1 error, 0 warnings)
解决方案
suite并不是Jest的全局变量,它属于Mocha、Jasmine这类测试框架的语法。如果你想覆盖多数通用测试全局变量,可以直接通过globals包合并多个测试框架的全局配置:
- 修改
languageOptions.globals,加入mocha或其他包含suite的测试框架全局,同时可以合并Jest、Jasmine等常用测试库的全局:
import eslint from "@eslint/js"; import globals from "globals"; export default [ { languageOptions: { globals: { ...globals.browser, // 合并多个测试框架的全局变量,覆盖常用测试语法 ...globals.jest, ...globals.mocha, ...globals.jasmine } } }, { files: ["**/*.js", "**/*.cjs", "**/*.mjs"], rules: eslint.configs.recommended.rules }, { ignores: ["rollup.config.js", "web-test-runner.config.js", "src/index.bundle.js"] } ]
- 如果只需要支持包含
suite的测试环境,单独添加mocha全局即可:
globals: { ...globals.browser, ...globals.jest, ...globals.mocha }
这样配置后,ESLint就能识别suite以及其他常用测试全局变量了。
内容的提问来源于stack exchange,提问作者Ole
相关产品推荐
相关产品推荐

