run([options])
options<Object> 运行测试的配置选项。支持以下属性:concurrency<number> | <boolean> 如果提供了一个数字,那么将会有对应数量的测试进程并行运行,每个进程对应一个测试文件。 如果为true,则会并行运行os.availableParallelism() - 1个测试文件。 如果为false,则一次只运行一个测试文件。 默认值:false。files: <Array> 包含要运行文件列表的数组。 默认值: 与 从命令行运行测试 相同。forceExit: <boolean> 配置测试运行器在所有已知测试执行完毕后退出进程,即使事件循环本来仍会保持活动状态。默认值:false。inspectPort<number> | <Function> 设置测试子进程的调试端口。可以是一个数字,也可以是一个不带参数且返回数字的函数。如果提供的是空值,每个进程将使用自己的端口,从主进程的process.debugPort开始递增。默认值:undefined。only:<boolean> 如果为真,测试上下文将只运行设置了only选项的测试setup<Function> 一个接受TestsStream实例的函数,可用于在运行任何测试之前设置监听器。 默认值:undefined。signal<AbortSignal> 允许中止正在进行的测试执行。testNamePatterns<string> | <RegExp> | <Array> 一个字符串、正则表达式或正则表达式数组,可用于仅运行名称与提供的模式匹配的测试。测试名称模式被解释为 JavaScript 正则表达式。对于执行的每个测试,任何相应的测试钩子(如beforeEach())也会运行。默认值:undefined。testSkipPatterns<string> | <RegExp> | <Array> 一个字符串、正则表达式或正则表达式数组,可用于排除运行名称与提供的模式匹配的测试。测试名称模式被解释为 JavaScript 正则表达式。对于执行的每个测试,任何对应的测试钩子(如beforeEach())也会运行。默认值:undefined。timeout<number> 测试执行将在指定的毫秒数后失败。如果未指定,子测试将继承其父测试的该值。默认值:Infinity。watch<boolean> 是否以监听模式运行。默认值:false。shard<Object> 在特定分片中运行测试。默认值:undefined。
- 返回:<TestsStream>
注意: shard 用于在多台机器或多个进程之间水平并行运行测试,非常适合在各种环境下进行大规模执行。它与 watch 模式不兼容,后者用于快速代码迭代,通过在文件更改时自动重新运行测试。
import { tap } from 'node:test/reporters';
import { run } from 'node:test';
import process from 'node:process';
import path from 'node:path';
run({ files: [path.resolve('./tests/test.js')] })
.on('test:fail', () => {
process.exitCode = 1;
})
.compose(tap)
.pipe(process.stdout);const { tap } = require('node:test/reporters');
const { run } = require('node:test');
const path = require('node:path');
run({ files: [path.resolve('./tests/test.js')] })
.on('test:fail', () => {
process.exitCode = 1;
})
.compose(tap)
.pipe(process.stdout);