功能导航
在这里,你可以了解到 Rstest 支持的主要功能。
复用 Rstack 生态
Rstest 可直接复用 Rsbuild、Rspack 等构建配置与插件生态。你可以使用同一套配置进行开发与测试,享受 Rstack 工具链带来的一致化体验。
了解更多关于 配置 Rstest。
基于 Rspack 构建
Rstest 底层使用 Rspack 构建,能够在 Rstest 中享受 Rspack 带来的高性能构建和 Tree-shaking、lazyBarrel 等优化。
基于 SWC 转译
Rstest 内置 SWC 转译器,提供开箱即用的 JavaScript/TypeScript 转译能力。你可以通过配置文件轻松定制 SWC 行为,以满足不同项目的需求。
了解更多关于 配置 SWC。
多项目测试
Rstest 提供了多项目测试的能力,支持在单个 Rstest 进程中并行对多个项目进行测试。
了解更多关于 多项目测试。
测试分片(Sharding)
Rstest 支持将测试文件拆分为多个分片并行执行。你可以在 CI 中将同一套测试分发到多台机器,以缩短整体执行时间。配合 blob 报告器与 rstest merge-reports,还能在执行完成后合并测试结果与代码覆盖率。
了解更多关于 测试分片。
源码内联测试
Rstest 支持类 Rust 的模块测试方式,可在源码文件内直接书写测试块。此方式适用于小型功能函数与工具方法,便于快速验证和调试。
了解更多关于 源码内联测试。
Watch 模式
当你修改测试文件或其依赖模块时,Rstest 会基于模块图分析,仅重新运行受影响的测试文件,从而显著提升本地测试效率。
DOM 测试
Rstest 支持使用 jsdom 与 happy-dom 模拟 DOM 与浏览器 API,并对 React、Vue 等框架提供良好支持,兼容 Testing Library、CSS Modules 等。
了解更多关于 DOM 测试。
浏览器模式(Browser Mode)
Rstest 提供 Browser Mode,允许你在真实浏览器中运行测试,而不是依赖 jsdom 或 happy-dom 这类模拟环境。这样可以直接验证真实浏览器 API 行为,减少测试环境与生产环境之间的差异。
Browser Mode 基于 Playwright 运行,可在 Chromium、Firefox、WebKit 中执行测试,适合需要跨浏览器验证或依赖真实渲染能力的场景。
了解更多关于 浏览器模式。
代码覆盖率
Rstest 支持使用 istanbul 收集代码覆盖率。你可以通过设置 coverage.enabled 为 true 来启用代码覆盖率收集。
了解更多关于 代码覆盖率。
更多能力
- 与 Jest 兼容的断言与快照测试
- Mock / Spy 能力
- 文件级沙箱隔离
- 多种生命周期钩子
- 多种报告器与 CI 集成
- 支持按文件夹 / 项目 / 测试名进行过滤
- VS Code 插件