Files

26 lines
1.0 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 递归收集 framework-tests 下所有 *.test.{ts,mjs} 交给 node 测试运行器。
// node --test 的 glob 模式需 v20.14+,本仓库当前 node 20.13.x 不支持,
// 故用此零依赖、跨平台 runner 显式枚举文件,保持 test:framework 行为一致。
// *.test.mjs: legacy-layer-migration 等纯 ESM 脚本测试 (Tasks 9-12 legacy 迁移管线).
import { readdirSync, statSync } from 'node:fs';
import { join } from 'node:path';
import { spawnSync } from 'node:child_process';
const root = 'framework-tests';
const files = [];
(function walk(dir) {
for (const entry of readdirSync(dir)) {
const p = join(dir, entry);
if (statSync(p).isDirectory()) walk(p);
else if (p.endsWith('.test.ts') || p.endsWith('.test.mjs')) files.push(p);
}
})(root);
if (files.length === 0) {
console.error(`[run-framework-tests] 未发现任何 *.test.{ts,mjs}(root=${root})`);
process.exit(1);
}
const r = spawnSync(process.execPath, ['--import', 'tsx', '--test', ...files], { stdio: 'inherit' });
process.exit(r.status ?? 1);