Rspack
本指南介绍了如何将 Rstest 与 Rspack 集成,以便在你的 Rspack 项目中进行无缝测试。
快速开始
要将 Rstest 添加到现有 Rspack 项目中,请遵循快速入门来安装和设置测试脚本。
复用 Rspack 配置
@rstest/adapter-rspack 是一个官方适配器,它允许 Rstest 自动从你现有的 Rspack 配置文件中继承配置。这可以确保你的测试环境与构建配置相匹配,而无需重复配置。
安装适配器
继承你的配置
使用适配器中的 withRspackConfig 函数,你可以从 Rspack 配置文件中继承 Rstest 配置。
这将自动:
- 加载你的
rspack.config.ts文件 - 将兼容的 Rspack 选项映射到 Rstest 配置
- 与你提供的任何其他 Rstest 配置合并
默认情况下,适配器使用 process.cwd() 来解析 Rspack 配置。如果你的配置文件在其他地方,你可以使用 cwd 选项。更多详情请参阅 API 部分。
由于 Rstest 内部使用 Rsbuild 作为打包工具,一些 Rstest 的内置行为可能与 Rspack 的默认行为不同。例如,Rstest 有自己的 CSS 处理流程。为了避免冲突,此适配器会自动禁用 Rstest(Rsbuild) 内置的 CSS 插件,使 Rspack 的 CSS 配置生效。这意味着使用此适配器时,一些 Rsbuild 特有的 CSS 功能和配置(如 output.cssModules 配置)将不可用。
API
withRspackConfig(options)
返回一个配置函数,该函数加载 Rspack 配置并将其转换为 Rstest 配置。
cwd
- 类型:
string - 默认值:
process.cwd()
用于解析 Rspack 配置文件的工作目录。
当你的 Rspack 配置文件位于不同的目录,或者你在 monorepo 中运行测试(此时 process.cwd() 不是你的配置目录)时,你可以指定 cwd 选项从不同的目录解析 Rspack 配置文件。
configPath
- 类型:
string - 默认值:
'./rspack.config.ts'
Rspack 配置文件的路径。
configName
- 类型:
string - 默认值:
undefined
当 Rspack 配置文件使用多配置时,选择指定名称的配置。设置为字符串以使用具有匹配 name 字段的配置。
如果你的 Rspack 配置导出了一个配置数组:
你可以在 Rstest 配置中选择特定的配置:
当你需要使用不同的配置独立测试应用程序的多个部分时,你可以定义多个 Rstest 项目:
env
- 类型:
Record<string, unknown> | string[] - 默认值:
undefined
传递给 Rspack 配置函数的环境变量。当 rspack.config.ts 导出一个函数时,对应其 env 参数:
nodeEnv
- 类型:
string - 默认值:
undefined
加载 Rspack 配置时使用的 NODE_ENV 值。
modifyRspackConfig
- 类型:
(config: RspackOptions) => RspackOptions - 默认值:
undefined
在将 Rspack 配置转换为 Rstest 配置之前对其进行修改:
配置映射
适配器会自动将这些 Rspack 选项映射到 Rstest:
以下 Rspack 选项不会被映射,将被忽略:
调试配置
要查看适配器返回的解析配置,可以将其包装并打印结果: