Node.js v14配置Jest时出现'test is not a function'错误
解决Jest中test函数未定义的问题
针对你在Node.js v14非模块项目里遇到的Jest test 函数找不到的问题,给你几个可行的解决办法:
1. 确保本地安装Jest并正确配置脚本
全局安装Jest容易出现环境不一致的问题,推荐把Jest作为项目开发依赖安装:
npm install --save-dev jest
然后在package.json里添加测试脚本:
{ "scripts": { "test": "jest" } }
之后用npm test运行测试,而不是直接敲jest命令,这样能确保调用的是项目本地安装的Jest版本,避免全局环境的冲突。
2. 手动导入测试全局变量
如果全局注入依然失效,可以在测试文件顶部手动导入test、expect这些方法,从@jest/globals包导入(该包会随Jest一起安装):
const { test, expect } = require('@jest/globals'); test('mytest', async function() { // 你的测试逻辑 });
3. 检查Jest配置文件
如果项目里有jest.config.js,检查是否有配置覆盖了全局变量注入。比如确认globals选项没有禁用相关变量,或者testEnvironment设置正确(Node.js项目推荐用node环境):
module.exports = { testEnvironment: 'node', globals: { // 确保这里没有覆盖test、expect等变量 } };
4. 确认测试文件命名规范
Jest默认只会识别命名为*.test.js或*.spec.js的文件,以及__tests__目录下的文件,确保你的测试文件名符合这个规范,避免Jest没有加载到测试文件导致的异常。
内容的提问来源于stack exchange,提问作者jcalfee314
相关产品推荐
相关产品推荐

