Rstest 提供了一个轻量级的命令行工具,包含 rstest watch 和 rstest run 等命令。
rstest -h
可帮助你查看所有可用的 CLI 命令及选项:
输出如下:
直接运行 rstest
命令将会在当前目录执行 Rstest 测试。在开发环境下会自动进入监听模式 (等同于 rstest watch
),而在 CI 环境或非终端交互模式下会执行单次测试 (等同于 rstest run
)。
rstest run
将会执行单次测试,该命令适用于 CI 环境或不需要一边修改一边执行测试的场景。
rstest watch
将会启动监听模式并执行测试,当测试或依赖文件修改时,将重新执行关联的测试文件。
rstest list
将会打印所有匹配条件的测试列表。默认情况下,它将打印所有匹配条件的测试名称。
rstest list
命令继承所有 rstest
过滤选项,你可以直接过滤文件或使用 -t
过滤指定的测试名称。
你可以使用 --filesOnly
使其仅打印测试文件:
你可以使用 --json
使其以 JSON 格式打印测试或将结果保存到单独的文件中:
Rstest CLI 支持以下常用参数,所有命令均可使用:
参数 | 说明 |
---|---|
-c, --config <config> | 指定配置文件路径(相对或绝对路径),详见 指定配置文件 |
--config-loader <loader> | 指定配置加载器,可选 jiti 或 native ,详见 Rsbuild - 指定加载方式 |
-r, --root <root> | 指定项目根目录,详见 root |
--globals | 提供全局 API,详见 globals |
--isolate | 在隔离环境中运行测试,详见 isolate |
--exclude <exclude> | 排除指定文件,详见 exclude |
-u, --update | 更新快照文件,详见 update |
--passWithNoTests | 当未找到测试文件时允许测试通过,详见 passWithNoTests |
--printConsoleTrace | 调用 console 方法时打印调用栈,详见 printConsoleTrace |
--disableConsoleIntercept | 禁用 console 拦截,详见 disableConsoleIntercept |
--slowTestThreshold <value> | 设置测试或套件被视为慢的阈值(毫秒),详见 slowTestThreshold |
-t, --testNamePattern <value> | 仅运行名称匹配正则的测试,详见 testNamePattern |
--testEnvironment <name> | 指定测试环境,详见 testEnvironment |
--testTimeout <value> | 设置单个测试的超时时间(毫秒),详见 testTimeout |
--hookTimeout <value> | 设置单个测试 hook 的超时时间(毫秒),详见 hookTimeout |
--retry <retry> | 测试失败时重试次数,详见 retry |
--maxConcurrency <value> | 最大并发测试数,详见 maxConcurrency |
--clearMocks | 每个测试前自动清除 mock 调用、实例、上下文和结果,详见 clearMocks |
--resetMocks | 每个测试前自动重置 mock 状态,详见 resetMocks |
--restoreMocks | 每个测试前自动恢复 mock 状态和实现,详见 restoreMocks |
--unstubGlobals | 每个测试前恢复被 rstest.stubGlobal 修改的全局变量,详见 unstubGlobals |
--unstubEnvs | 每个测试前恢复被 rstest.stubEnv 修改的 process.env ,详见 unstubEnvs |
-h, --help | 显示帮助信息 |
-v, --version | 显示版本号 |