You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jest与TypeScript环境下测试Azure HTTP Trigger函数?

报错含义

这个报错是Jest在解析GetAnnouncements.test.ts里的模块导入语句时,找不到你指定的defaultContext模块。核心原因是你用了无路径的裸导入写法require('defaultContext'),Jest默认只会到node_modules目录下查找同名模块,不会主动检索你项目test目录下的本地文件。Jest的提示也明确说明它可以识别到同目录下的./defaultContext.js,只是你的导入路径写法不符合解析规则。

修复方案

  • 方案1:修改导入路径(最推荐,无需改配置)
    把测试文件的第二行改成相对路径导入即可,两种写法都可生效:
// 写法1:带文件后缀,避免识别歧义
const context = require('./DefaultContext.js');
// 写法2:不带后缀,Jest会根据你配置的moduleFileExtensions自动匹配查找
const context = require('./DefaultContext');

注意导入时的文件名大小写要和实际文件一致,你本地文件是首字母大写的DefaultContext.js,导入时也要对应大小写,避免在大小写敏感的操作系统上出现二次报错。

  • 方案2:调整Jest配置(适合多测试文件都要复用这个公共context的场景)
    在项目根目录的jest.config.js中添加moduleDirectories配置,把test目录加入模块查找路径:
module.exports = {
  // 保留原有其他配置不变
  moduleDirectories: ['node_modules', 'test']
}

配置完成后你原来的require('defaultContext')写法就可以正常运行。

内容的提问来源于stack exchange,提问作者Muflix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 17:57:02