close

功能导航

在这里,你可以了解到 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.enabledtrue 来启用代码覆盖率收集。

了解更多关于 代码覆盖率

更多能力

  • 与 Jest 兼容的断言与快照测试
  • Mock / Spy 能力
  • 文件级沙箱隔离
  • 多种生命周期钩子
  • 多种报告器与 CI 集成
  • 支持按文件夹 / 项目 / 测试名进行过滤
  • VS Code 插件