For AI agents: the complete documentation index is available at /zh/llms.txt, the full documentation bundle is available at /zh/llms-full.txt, and this page is available as Markdown at /zh/guide/start/features.md.
close
  • 简体中文
  • 功能导航

    Rstest 将测试融入 Rsbuild 与 Rspack 构建链路。它会尽可能复用构建配置,通过基于 bundle 的执行模型运行测试,并提供本地开发和 CI 所需的核心测试能力。

    复用现有构建配置

    Rstest 可以复用 Rsbuild 与 Rspack 配置,包括模块解析、代码转换和插件行为。这样可以减少测试专用构建配置的重复维护,让测试环境与最终交付代码保持一致。

    了解更多关于 配置 Rstest

    基于 Rspack 构建

    Rstest 基于 Rspack 的 bundling pipeline 运行测试,因此可以利用 Tree Shaking、lazyBarrel 等构建期优化,同时让测试行为更贴近真实产物。

    基于 SWC 转译

    默认情况下,Rstest 使用 Rspack 内置的 SWC loader 转换 JavaScript 和 TypeScript。当项目需要不同的语法或转换行为时,你可以在配置文件中自定义 SWC 选项。

    了解更多关于 配置 SWC

    多项目测试

    Rstest 可以在同一个进程中运行多个测试项目,每个项目都可以保留自己的配置和环境。这适合 monorepo、多应用工作区,以及需要分别覆盖 Node、DOM 或 Browser Mode 的项目。

    了解更多关于 多项目测试

    测试分片(Sharding)

    Rstest 可以将测试文件拆分为多个分片并行执行。你可以在 CI 中把同一套测试分发到多台机器以缩短总耗时,并在所有分片完成后通过 blob 报告器与 rstest merge-reports 合并测试结果和代码覆盖率。

    了解更多关于 测试分片

    源码内联测试

    Rstest 支持类 Rust 的模块测试风格,可以在源码文件中直接编写测试块。对于小型工具函数和 helper,将快速检查放在实现旁边会让开发更顺手。

    了解更多关于 源码内联测试

    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、渲染行为,以及 DOM 模拟器难以覆盖的交互。

    Browser Mode 基于 Playwright 运行,可在 Chromium、Firefox 和 WebKit 中执行测试,适合跨浏览器验证。

    了解更多关于 浏览器模式

    Playwright 驱动的 E2E 测试

    Rstest 可以通过 @rstest/playwright 对完整页面或应用运行 E2E 测试。测试会在 Node.js worker 中运行,并使用 Playwright 驱动本地 dev server、preview server 或线上 URL,同时与其他测试共享 Rstest runner、配置和报告工作流。

    了解更多关于 Playwright

    代码覆盖率

    Rstest 同时支持 istanbulv8 两种覆盖率 provider。你可以在 Rstest 配置文件中将 coverage.enabled 设置为 true 来启用覆盖率,再根据项目需求选择对应的 provider。

    如果你需要基于 SWC 插桩且语义稳定的 Istanbul coverage,可以使用 istanbul;如果 coverage 的主要瓶颈是内存占用,可以使用 v8。Browser Mode 不支持使用 v8 coverage。

    了解更多关于 代码覆盖率

    更多能力

    • 与 Jest 兼容的断言和快照
    • Mock 和 spy 工具
    • 文件级沙箱隔离
    • 用于 setup 和 teardown 的生命周期钩子
    • 内置报告器和 CI 输出
    • 支持按目录、项目、文件或测试名过滤
    • VS Code 插件