

























@@ -2,7 +2,11 @@ import fs from "node:fs";
22import path from "node:path";
33import { performance } from "node:perf_hooks";
44import { acquireLocalHeavyCheckLockSync } from "./lib/local-heavy-check-runtime.mjs";
5-import { isCiLikeEnv, resolveLocalFullSuiteProfile } from "./lib/vitest-local-scheduling.mjs";
5+import {
6+isCiLikeEnv,
7+resolveLocalFullSuiteProfile,
8+resolveLocalVitestEnv,
9+} from "./lib/vitest-local-scheduling.mjs";
610import {
711resolveVitestCliEntry,
812resolveVitestNodeArgs,
@@ -341,6 +345,7 @@ async function runVitestSpecsParallel(specs, concurrency) {
341345342346async function main() {
343347const args = process.argv.slice(2);
348+const baseEnv = resolveLocalVitestEnv(process.env);
344349const { targetArgs } = parseTestProjectsArgs(args, process.cwd());
345350const changedTargetArgs =
346351targetArgs.length === 0 ? resolveChangedTargetArgs(args, process.cwd()) : null;
@@ -349,7 +354,7 @@ async function main() {
349354 ? buildFullSuiteVitestRunPlans(args, process.cwd()).map((plan) => ({
350355config: plan.config,
351356continueOnFailure: true,
352-env: process.env,
357+env: baseEnv,
353358includeFilePath: null,
354359includePatterns: null,
355360pnpmArgs: [
@@ -365,23 +370,23 @@ async function main() {
365370watchMode: plan.watchMode,
366371}))
367372 : createVitestRunSpecs(args, {
368-baseEnv: process.env,
373+ baseEnv,
369374cwd: process.cwd(),
370375});
371376const runSpecs = applyDefaultMultiSpecVitestCachePaths(
372-applyDefaultVitestNoOutputTimeout(rawRunSpecs, { env: process.env }),
373-{ cwd: process.cwd(), env: process.env },
377+applyDefaultVitestNoOutputTimeout(rawRunSpecs, { env: baseEnv }),
378+{ cwd: process.cwd(), env: baseEnv },
374379);
375380376381if (runSpecs.length === 0) {
377382console.error("[test] no changed test targets; skipping Vitest.");
378383return;
379384}
380385381-releaseLock = shouldAcquireLocalHeavyCheckLock(runSpecs, process.env)
386+releaseLock = shouldAcquireLocalHeavyCheckLock(runSpecs, baseEnv)
382387 ? acquireLocalHeavyCheckLockSync({
383388cwd: process.cwd(),
384-env: process.env,
389+env: baseEnv,
385390toolName: "test",
386391})
387392 : () => {};
@@ -391,28 +396,28 @@ async function main() {
391396changedTargetArgs === null &&
392397!runSpecs.some((spec) => spec.watchMode);
393398const isExplicitParallelMultiConfigRun =
394-Boolean(process.env.OPENCLAW_TEST_PROJECTS_PARALLEL) &&
399+Boolean(baseEnv.OPENCLAW_TEST_PROJECTS_PARALLEL) &&
395400runSpecs.length > 1 &&
396401!runSpecs.some((spec) => spec.watchMode);
397402const isParallelShardRun =
398403isFullSuiteRun || isFullExtensionsProjectRun(runSpecs) || isExplicitParallelMultiConfigRun;
399404if (isParallelShardRun) {
400-const concurrency = resolveParallelFullSuiteConcurrency(runSpecs.length, process.env);
405+const concurrency = resolveParallelFullSuiteConcurrency(runSpecs.length, baseEnv);
401406if (concurrency > 1) {
402-const localFullSuiteProfile = resolveLocalFullSuiteProfile(process.env);
403-const shardTimings = readShardTimings(process.cwd(), process.env);
407+const localFullSuiteProfile = resolveLocalFullSuiteProfile(baseEnv);
408+const shardTimings = readShardTimings(process.cwd(), baseEnv);
404409const parallelSpecs = applyDefaultParallelVitestWorkerBudget(
405410applyParallelVitestCachePaths(orderFullSuiteSpecsForParallelRun(runSpecs, shardTimings), {
406411cwd: process.cwd(),
407-env: process.env,
412+env: baseEnv,
408413}),
409-process.env,
414+baseEnv,
410415);
411416if (
412-!isCiLikeEnv(process.env) &&
413-!process.env.OPENCLAW_TEST_PROJECTS_PARALLEL &&
414-!process.env.OPENCLAW_VITEST_MAX_WORKERS &&
415-!process.env.OPENCLAW_TEST_WORKERS &&
417+!isCiLikeEnv(baseEnv) &&
418+!baseEnv.OPENCLAW_TEST_PROJECTS_PARALLEL &&
419+!baseEnv.OPENCLAW_VITEST_MAX_WORKERS &&
420+!baseEnv.OPENCLAW_TEST_WORKERS &&
416421localFullSuiteProfile.shardParallelism === 10 &&
417422localFullSuiteProfile.vitestMaxWorkers === 2
418423) {
@@ -425,7 +430,7 @@ async function main() {
425430parallelSpecs,
426431concurrency,
427432);
428-writeShardTimings(timings, process.cwd(), process.env);
433+writeShardTimings(timings, process.cwd(), baseEnv);
429434console.error(
430435`[test] completed ${parallelSpecs.length} Vitest shards; Vitest summaries above are per-shard, not aggregate totals.`,
431436);
@@ -455,7 +460,7 @@ async function main() {
455460timings.push(result.timing);
456461}
457462}
458-writeShardTimings(timings, process.cwd(), process.env);
463+writeShardTimings(timings, process.cwd(), baseEnv);
459464460465releaseLockOnce();
461466if (exitCode !== 0) {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。