close

介绍

Rstest 是一个基于 Rspack 的测试框架,它为 Rspack 生态提供了全面、一流的支持,能够轻松集成到现有的 Rspack 项目中。

Rstest 提供兼容 Jest 的 API,同时提供对 TypeScript、ESM、CJS 等的原生、开箱即用支持,确保现代高效的测试体验。

✨ 为什么选择 Rstest

Rstest 基于 Rspack 与 Rsbuild 构建,开箱即用,对 TypeScript、ESM、CJS、CSS Modules 等常见场景提供默认支持。即使不在 Rspack 生态中,也可以在不迁移现有构建体系的前提下接入并使用。

对于已经使用 Rstack 工具链(Rspack、Rsbuild、Rslib 等)的项目,Rstest 能够进一步复用现有的构建配置,包括模块解析、代码转换以及插件能力,无需为测试维护独立的 transform 或 resolver 配置。

在执行模型上,Rstest 采用基于依赖图的 bundle 模型来运行测试,而不是传统测试框架中基于逐文件转换(transform)的执行方式。这种方式能够直接复用构建阶段的优化能力(如 tree-shaking,以及对无副作用的 barrel file 重导出的按需跳过),使测试结果更加接近真实运行产物,同时在大规模项目中减少重复的模块转换与执行开销,从而提升测试效率与稳定性。

通过将测试能力纳入构建流程,Rstest 简化了整体工具链结构,减少了配置与插件系统的重复成本,使测试能够更自然地融入现代工程架构(如 monorepo 和复杂应用架构)中。

未来,Rstest 将持续围绕“构建 + 测试”的一体化方向演进,探索更高效的质量保障方案,并与 CI、Agent 等能力进一步结合。

🔥 路线图

Rstest 现已支持 Node.js 测试、DOM 测试、Mock、多项目测试、覆盖率收集等核心能力,并在 Rstack(包括 Rspack、Rsbuild、Rslib 等)项目中落地使用。

目前项目处于积极发展阶段,我们将持续基于社区反馈,不断完善功能与用户体验。更多未来规划,请参阅 Rstest Roadmap

🦀 Rstack

Rstack 是一个以 Rspack 为核心的 JavaScript 统一工具链,具有优秀的性能和一致的架构。

Rstack

Rstack 包含以下工具:

名称描述版本
Rspack打包工具npm version
Rsbuild构建工具npm version
Rslib库开发工具npm version
Rspress静态站点生成器npm version
Rsdoctor构建分析工具npm version
Rstest测试框架npm version
Rslint代码检查工具npm version

🔗 链接

🧑‍💻 社区

欢迎加入我们的 Discord 交流频道!Rstack 团队和用户都在那里活跃,并且我们一直期待着各种贡献。

你也可以加入 飞书群 与大家一起交流。