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

如何在jest.config.js中配置jest-json-schema全局扩展

Jest全局注册jest-json-schema匹配器正确配置方法

直接将expect.extend(matchers)逻辑写在jest.config.js配置导出块里是错误操作:Jest配置文件仅用于返回配置参数,不会在测试运行沙箱中执行匹配器扩展逻辑,这就是你触发Unresolved function or method extend()报错的原因。

按以下步骤配置即可实现全局可用:

  • 新建单独的测试初始化文件,比如在项目根目录创建jest.setup.js,写入匹配器注册代码:
// CommonJS规范用以下写法
const { matchers } = require('jest-json-schema');
expect.extend(matchers);

// ES模块规范替换为以下写法即可
// import { matchers } from 'jest-json-schema';
// expect.extend(matchers);
  • 修改现有jest.config.js配置,新增setupFilesAfterEnv字段,指定刚才创建的初始化文件路径。该配置下的文件会在Jest测试框架加载完成、每个测试文件执行前自动运行,是注册全局匹配器的指定位置:
module.exports = async () => {
  return {
    verbose: true,
    setupFilesAfterEnv: ['./jest.setup.js'] // 路径按setup文件实际存放位置调整
  };
};

注意:不要用setupFiles配置项加载匹配器注册逻辑,该配置项对应文件执行时,Jest的expect等测试API还未完成初始化,同样会出现方法找不到的报错。

配置修改完成后重启Jest测试进程,所有测试文件内即可直接调用jest-json-schema提供的匹配器,无需在单个测试文件中重复导入扩展。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 18:54:23