使用 Jest 测试

Modern.js 默认集成了 Jest 的测试能力。

我们首先需要执行 pnpm run new 启用「单元测试 / 集成测试」功能:

? 请选择你想要的操作 启用可选功能
? 请选择功能名称 启用「单元测试 / 集成测试」功能

执行上述命令后,package.json 中将会自动添加 "test": "modern test" 命令。

modern.config.ts 中注册 @modern-js/plugin-testing 插件后即可使用测试功能:

modern.config.ts
import { testingPlugin } from '@modern-js/plugin-testing';

export default defineConfig({
  ...,
  plugins: [..., testingPlugin()],
});

测试文件

Modern.js 默认识别的测试文件路径为:<rootDir>/src/**/*.test.[jt]s?(x)<rootDir>/tests/**/*.test.[jt]s?(x)

如果你需要自定义 test 目录,可通过 tools.jest 进行配置。

使用姿势

Modern.js test 支持使用 testing-library 相关包 API,可直接通过 @modern-js/runtime/testing 进行导入:

import { render, screen } from '@modern-js/runtime/testing';

其他 Modern.js 支持的 testing API 可参考这里

transform

Modern.js 测试默认使用 babel-jest 进行源码编译,如果你需要使用 ts-jest,可以通过 testing.transform 进行配置。