升级后Jest运行React测试提示需用jsdom测试环境,应如何解决?
问题根因
- Jest v27及以上版本将默认测试环境从
jsdom调整为node,你升级Jest版本前使用的是v27以下的版本,默认支持DOM环境测试无需额外配置,升级后缺少浏览器模拟环境就会触发报错。
修复方案
全局配置(所有测试生效)
- 安装jsdom环境依赖:Jest v28及以上版本已将
jest-environment-jsdom从核心包中拆分,需要单独安装
npm install jest-environment-jsdom --save-dev
- 修改
jest.config.json新增测试环境配置
{ "testEnvironment": "jsdom", "setupFilesAfterEnv": [ "<rootDir>/lib/settings/setupTests.ts" ] }
单文件配置(仅对应测试文件生效)
如果只有部分测试需要用到DOM环境,可以不在全局配置,直接在对应测试文件的最顶部添加注释指定环境即可
/** * @jest-environment jsdom */ import React from 'react' import { render } from '@testing-library/react' // 剩余原有测试代码
内容的提问来源于stack exchange,提问作者Rodrigo
相关产品推荐
相关产品推荐

