环境变量
Rstest 在测试进程和 worker 进程中会设置一些环境变量,你可以在测试、setup 文件以及源码中读取它们。
NODE_ENV
如果 NODE_ENV 还没被设置,Rstest 在执行测试时会把它设为 'test'。Rstest 不会覆盖已有的值,因此你可以通过 shell 或 package.json 脚本指定。
process.env.NODE_ENV 和 import.meta.env.NODE_ENV 在所有测试环境(包括 browser mode)下都可用。在 ESM 源码中(尤其是浏览器构建等没有 process 的场景),更推荐使用 import.meta.env.NODE_ENV。
RSTEST
Rstest 在执行测试时会把 process.env.RSTEST 设为 'true',可以用来在源码中标记仅在测试中执行的代码分支。
在生产构建中把 process.env.RSTEST 替换为 false,这样打包工具就能消除对应的死代码 — 详见 检测 Rstest 环境。
如果想把测试代码直接写在源文件里,更推荐使用 import.meta.rstest — 它直接暴露 Rstest 的测试 API,并且在生产构建中为 undefined。
RSTEST_WORKER_ID
标识当前测试文件所在 worker 进程的整数(以字符串形式表示)。第一个 worker 为 '1'。等价于 Jest 的 JEST_WORKER_ID。
可以在并行 worker 之间隔离共享的外部资源 — 比如数据库 schema、端口、临时目录,以及其他可能因多 worker 同名而冲突的资源。
同时运行的 worker 之间 ID 一定不同,所以在 worker 生命周期内可以放心地把它用作资源名的一部分。并发 worker 的数量上限由 pool.maxWorkers 控制;ID 会按 worker 启动顺序递增,单次 Rstest 运行内不会回收复用。