close
logo
Rstest
指南
配置
API
English
简体中文
指南
配置
API
English
简体中文
logo
Rstest

开始

介绍
快速上手
功能导航

基础

命令行工具
配置 Rstest
过滤测试
VS Code 扩展

进阶

调试
性能分析

迁移

从 Jest 迁移
📝 在 GitHub 上编辑此页
上一页命令行工具
下一页过滤测试

#配置 Rstest

#配置文件

当你使用 Rstest 的 CLI 命令时,Rstest 会自动读取当前项目根目录下的配置文件,按照以下顺序进行解析:

  • rstest.config.mjs
  • rstest.config.ts
  • rstest.config.js
  • rstest.config.cjs
  • rstest.config.mts
  • rstest.config.cts

我们推荐使用 .mjs 或 .ts 格式的配置文件,并从 @rstest/core 中导入 defineConfig 工具函数, 它提供了友好的 TypeScript 类型推导和自动补全,可以帮助你避免配置中的错误。

rstest.config.ts
import { defineConfig } from '@rstest/core';

export default defineConfig({
  testEnvironment: 'node',
});

如果你在开发一个非 TypeScript 项目,可以使用 .mjs 格式的配置文件。

#指定配置文件

Rstest CLI 通过 --config 选项来指定配置文件,可以设置为相对路径或绝对路径。

package.json
{
  "scripts": {
    "test": "rstest --config scripts/rstest.config.mjs"
  }
}

你也可以将 --config 选项缩写为 -c:

rstest -c scripts/rstest.config.mjs

#配置 Rsbuild

Rstest 的构建配置继承自 Rsbuild。因此,在 Rstest 中,你可以使用绝大部分的 Rsbuild 配置。如:

  • 通过 plugins 使用 Rsbuild 插件;
  • 通过 resolve 对模块解析行为进行配置;
  • 通过 tools.rspack 配置 Rspack;
  • 通过 tools.swc 对 builtin:swc-loader 进行配置。

更多配置可参考 构建配置。

#配置 Rspack

Rstest 底层使用 Rspack 进行构建,因此你可以直接使用 Rspack 的配置项来配置 Rstest 的构建行为。

详情可参考 配置 Rspack。

#检测 Rstest 环境

你可以使用 process.env.RSTEST 来检测是否是 Rstest 测试环境以应用不同的配置 / 代码在你的测试中。

if (process.env.RSTEST) {
  // 在 rstest 环境下将会返回 'true'
  // do something...
}

需要注意的是,如果你使用 process.env.RSTEST 在你的源码中,在生产环境构建时,在你的构建配置(如 rsbuild.config.ts)中将 process.env.RSTEST 定义为 false,这样将有助于打包工具消除无用代码。

rsbuild.config.ts
import { defineConfig } from '@rsbuild/core';

export default defineConfig({
  source: {
    define: {
+      'process.env.RSTEST': false,
    },
  },
});

如果你正在开发 Rsbuild 插件,你可以使用 api.context.callerName 来判断当前插件被调用的环境。

export const myPlugin = {
  name: 'my-plugin',
  setup(api) {
    const { callerName } = api.context;

    if (callerName === 'rstest') {
      // ...
    } else if (callerName === 'rsbuild') {
      // ...
    }
  },
};