具有 isolation=none 的测试运行程序在子进程中不起作用
import { run } from "node:test"; import { spec } from "node:test/reporters"; import { PassThrough } from "node:stream"; import { availableParallelism } from "node:os"; import cluster from 'node:cluster';
const concurrency = availableParallelism(); let completed = 0;
if (cluster.isPrimary) { const mergedStream = new PassThrough({ objectMode: true });
cluster.on("message", (_worker, message) => { mergedStream.emit("data", message); });
mergedStream .compose(spec) .pipe(process.stdout);
for (let i = 1; i <= concurrency; i++) { cluster.fork({ SHARD_INDEX: i, SHARD_TOTAL: concurrency, }); }
cluster.on("exit", (worker, code, signal) => { if (++completed === concurrency) { mergedStream.end(); } }); } else { const stream = run({ isolation: "none", shard: { …
内容来源: nodejs/node