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

nexus-prisma搭配jest运行测试报错,附package.json配置求助

修复步骤

  1. 处理ESM模块转译
    你当前使用的nexus-prisma@0.33.0输出为ESM格式,Jest 27默认不转译node_modules下的ES模块,直接运行会报语法错误,在jest配置中添加transformIgnorePatterns字段:
{
  "jest": {
    // 保留原有配置不变
    "transformIgnorePatterns": [
      "node_modules/(?!(nexus|nexus-prisma)/)"
    ]
  }
}
  1. 修正Prisma实例初始化逻辑
    检查./src/test/jest-setup.ts文件,测试环境下不要复用生产环境的Prisma单例:
  • 如果使用Mock版本的PrismaClient,参考配置:
import { PrismaClient } from '@prisma/client'
import { mockDeep, mockReset } from 'jest-mock-extended'

jest.mock('@prisma/client', () => ({
  PrismaClient: jest.fn(() => mockDeep<PrismaClient>())
}))

const prisma = new PrismaClient()
beforeEach(() => mockReset(prisma))
  • 如果使用真实测试数据库,需要手动管理连接生命周期:
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()

beforeAll(async () => await prisma.$connect())
afterAll(async () => await prisma.$disconnect())
  1. 预生成必要资源
    测试运行前要先完成Prisma客户端和Nexus schema的生成,避免运行时报找不到类型的错误,修改package.json的test脚本:
{
  "scripts": {
    "test": "prisma generate && nexus build && jest"
  }
}
  1. 修正环境变量加载配置
    当前你加载的是默认根目录.env文件,建议单独配置测试环境变量,修改jest的setupFiles配置:
{
  "jest": {
    "setupFiles": [
      ["dotenv/config", { "path": ".env.test" }]
    ]
  }
}

报错参考

报错截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 22:27:00