-
安装 Jest 和相关依赖
首先,安装 Jest 和 TypeScript 的 Jest 预处理器
ts-jest
以及类型定义文件。npm install --save-dev jest ts-jest @types/jest
-
初始化 Jest 配置
使用
ts-jest
初始化 Jest 配置文件。npx ts-jest config:init
这会生成一个基本的 Jest 配置文件
jest.config.js
。如果没有生成,手动创建该文件并添加以下内容:module.exports = { preset: 'ts-jest', testEnvironment: 'node', moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'], transform: { '^.+\\.(ts|tsx)$': 'ts-jest', }, testMatch: ['**/?(*.)+(spec|test).[tj]s?(x)'], };
-
配置 TypeScript
确保你的
tsconfig.json
文件包含jest
的类型定义:{ "compilerOptions": { "types": ["jest"] } }
-
编写测试
在你的项目中编写测试文件,通常放在
__tests__
目录或者与源文件同名但以.test.ts
或.spec.ts
结尾。例如,在src
目录下创建example.test.ts
:// src/example.test.ts import { myFunction } from './example'; test('myFunction should return correct value', () => { expect(myFunction(1)).toBe(2); });
注意,要将测试文件或文件所在目录放在
tsconfig.json
中指定的compilerOptions.rootDir
下,不然会报Unable to process '...__tests__\utils.test.ts'
之类的错误。 -
更新 npm 脚本
在
package.json
中添加一个脚本来运行 Jest:{ "scripts": { "test": "jest" } }
-
配置 ESLint
如果项目中使用了 ESLint,可能会提示 test 等函数未定义(no-undef),将下面的
overrides
配置加到.eslintrc.js
中可以解决:{ "overrides": [ { "files": ["**/?(*.)+(spec|test).[tj]s?(x)"], "env": { "jest": true } } ] }
-
运行测试
运行以下命令来执行测试:
npm test
标签:文件,Jest,json,TS,ts,Webpack,jest,test From: https://www.cnblogs.com/Higurashi-kagome/p/18223380参考:ChatGPT、javascript - eslint throws `no-undef` errors when linting Jest test files - Stack Overflow