close
  • 简体中文
  • 使用 Rstest

    Rstest 是一个基于 Rspack 的测试框架,它为 Rspack 生态提供了全面、一流的支持,你可以使用同一套配置进行开发与测试。

    使用 Rstest 将为你的 Rslib 项目带来无缝的测试体验。

    快速开始

    新项目

    新创建的 Rslib 项目默认使用 Rstest 作为测试框架,详情参考 创建 Rslib 项目。你可以通过以下命令创建一个 React 项目:

    npx create-rslib --dir my-project --template react-ts

    已有项目

    要将 Rstest 添加到现有的 Rslib 项目中,只需安装 @rstest/core 包作为开发依赖,并在 package.json 的 npm scripts 中添加 Rstest 命令:

    npm
    yarn
    pnpm
    bun
    deno
    npm add -D @rstest/core
    package.json
    {
      "scripts": {
        "test": "rstest"
      }
    }

    完成以上步骤后,你可以在项目中创建测试文件并使用 Rstest 的 API 编写测试,并通过 npm test 命令运行测试。

    例如,创建一个 sum.test.ts 文件,内容如下:

    test/sum.test.ts
    import { test, expect } from '@rstest/core';
    import { sum } from '../src/sum';
    
    test('sum', () => {
      expect(sum(1, 2)).toBe(3);
    });

    此时,你可以运行 npm test 命令来执行测试。Rstest 输出如下:

     ✓ test/sum.test.ts (1)
    
     Test Files 1 passed
          Tests 1 passed
       Duration 71ms (build 20ms, tests 51ms)

    配置 Rstest

    Rstest 提供了多种配置选项,可以通过在项目根目录创建 rstest.config.ts 文件来进行配置。以下是一个示例配置文件:

    rstest.config.ts
    import { defineConfig } from '@rstest/core';
    
    export default defineConfig({
      include: ['test/**/*.test.ts'],
      testEnvironment: 'node',
    });

    你可以在配置文件中指定测试文件的匹配模式、设置测试环境、配置代码覆盖率等。有关所有可用配置选项的详细信息,请参阅 Rstest 文档

    复用 Rslib 配置

    @rstest/adapter-rslib 是 Rstest 官方提供的适配器,允许 Rstest 自动继承现有 Rslib 配置文件中的配置。这样可以确保测试环境与构建配置一致,避免重复配置。

    rstest.config.ts
    import { defineConfig } from '@rstest/core';
    import { withRslibConfig } from '@rstest/adapter-rslib';
    
    export default defineConfig({
      extends: withRslibConfig(),
      // 额外的 rstest 特定配置
    });

    关于 withRslibConfig 函数的更多信息,请参阅 Rstest 文档