命令行工具
Rstest 提供了一个轻量级的命令行工具,包含 rstest watch 和 rstest run 等命令。
rstest -h
rstest -h 可帮助你查看所有可用的 CLI 命令及选项:
输出如下:
可以通过 npx rstest <command> -h 查看命令专属参数。例如,npx rstest init -h 只会显示初始化相关参数,而 npx rstest merge-reports -h 只会显示合并报告相关参数。
rstest [...filters]
直接运行 rstest 命令将会在当前目录执行 Rstest 测试。
Watch 模式
如果你希望在文件更改时自动重新运行测试,可以使用 --watch 或 rstest watch 命令:
rstest run
rstest run 将会执行单次测试,该命令适用于 CI 环境或不需要一边修改一边执行测试的场景。
运行相关测试
当你希望把命令行位置参数视为源码文件,并只运行依赖这些源码的测试时,可以使用 --related:
Rstest 会基于构建得到的 module graph 解析相关测试,因此同一套过滤逻辑同时适用于 Node mode 和 Browser Mode。你也可以使用兼容 Jest 的别名:
如果你只想查看受影响的测试文件,可以配合 rstest list 使用:
运行变更相关测试
使用 --changed 可以从当前 Git 仓库收集变更文件,并运行这些文件相关的测试。默认会包含 unstaged、staged 和 untracked 文件,适合在本地提交前快速验证:
你也可以传入 commit 或 branch。Rstest 会包含该 ref 与 HEAD 之间的变更文件,以及本地 staged、unstaged 和 untracked 文件:
当变更文件命中 forceRerunTriggers 时,Rstest 会运行完整测试套件,而不是只运行相关测试。
开启覆盖率且未配置 coverage.changed 时,--changed 也会将覆盖率报告限制在变更的源文件范围内。如果变更文件命中 forceRerunTriggers,Rstest 会运行完整测试套件,并生成完整覆盖率报告,除非显式启用了 coverage.changed。
如果只想预览将要执行哪些测试,可以配合 rstest list 使用:
--changed 不能和位置参数、--related / --findRelatedTests 一起使用,因为它已经从 Git 状态提供了源码文件过滤条件。
rstest watch
rstest watch 将会启动监听模式并执行测试,当测试或依赖文件修改时,将重新执行关联的测试文件。
rstest list
rstest list 将会打印所有匹配条件的测试列表。默认情况下,它将打印所有匹配条件的测试名称。
rstest list 命令继承所有 rstest 过滤选项,你可以直接过滤文件或使用 -t 过滤指定的测试名称。
你可以使用 --filesOnly 使其仅打印测试文件:
你可以使用 --json 使其以 JSON 格式打印测试或将结果保存到单独的文件中:
您可以使用 --includeSuites 选项,在打印测试用例的同时输出测试套件信息:
您可以使用 --printLocation 选项来打印测试的位置信息:
你可以使用 --summary 在列表输出后追加一段简要统计:
当与 --json 一起使用时,--summary 会把 JSON 输出从数组切换为包含 items 和 summary 字段的对象。
rstest merge-reports
rstest merge-reports 将多个测试分片生成的 blob 报告合并为一个统一的报告。当使用 --shard 在多台 CI 机器上并行运行测试时,这非常有用。
工作流程
- 使用
blob报告器运行每个分片以生成 blob 报告文件:
- 将所有
.rstest-reports/目录收集到同一位置,然后合并:
默认情况下,blob 报告从项目根目录的 .rstest-reports/ 读取。你可以指定自定义路径:
合并命令将:
- 合并所有分片的测试结果
- 使用配置的报告器(如
default、junit)输出合并后的数据 - 合并并生成覆盖率报告(如果启用了覆盖率)
使用 --cleanup 在合并完成后删除 blob 报告目录:
rstest init
rstest init 用于为支持的项目类型生成初始配置。
当前可用的初始化目标是 browser:
使用 --yes 可以跳过交互式提问,直接应用默认配置:
CLI 选项
Rstest CLI 参数是按命令注册的,并不是所有命令共享同一套参数。
测试命令
rstest、rstest run 和 rstest watch 共享同一组测试运行参数:
rstest 默认命令还额外支持 -w, --watch,可直接切换到 watch 模式。
rstest list
rstest list 支持上面测试命令的过滤和配置参数,并额外提供:
rstest merge-reports
rstest merge-reports 只注册一组更小的参数集合:
rstest init
rstest init 只接受初始化相关参数:
布尔选项取反
对于布尔类型的选项,你可以使用 --no-<option> 前缀来将其设置为 false。例如:
CLI 快捷键
在 watch 模式下运行 Rstest 时,你可以使用键盘快捷键来执行各种便捷操作。
所有快捷键:
CLI 快捷键仅在 watch 模式下运行 Rstest(rstest watch 或 rstest --watch)且终端支持 TTY(交互模式)时可用。