Files
nix-flake/assets/dotfiles/vscode-extensions/ms-dotnettools.csdevkit-3.20.199-linux-x64/tools/run-integration-tests.js
T
2026-08-14 21:33:40 +01:00

56 lines
1.6 KiB
JavaScript

// Runs integration tests, with an optional --skip-loc flag to skip the
// localization step (useful in CI where loc has already been built).
//
// Usage:
// node tools/run-integration-tests.js [--skip-loc] [--suite perf|experimental] [-- ...args]
//
// Without --suite, runs the functional test suite by default.
const { execSync } = require('child_process')
const args = process.argv.slice(2)
const skipLoc = args.includes('--skip-loc')
const passthrough = []
let suite = 'functional'
for (let i = 0; i < args.length; i++) {
if (args[i] === '--skip-loc') continue
if (args[i] === '--suite' && i + 1 < args.length) {
suite = args[++i]
continue
}
if (args[i] === '--') {
passthrough.push(...args.slice(i + 1))
break
}
passthrough.push(args[i])
}
const suiteScripts = {
functional: './out/test/integration/runTestFunctionalSuite.js',
perf: './out/test/integration/runTestPerformanceSuite.js',
experimental: './out/test/integration/runExperimentalTestSuite.js',
}
const script = suiteScripts[suite]
if (!script) {
console.error(`Unknown suite: ${suite}. Expected one of: ${Object.keys(suiteScripts).join(', ')}`)
process.exit(1)
}
function run(cmd) {
console.log(`> ${cmd}`)
execSync(cmd, { stdio: 'inherit' })
}
if (!skipLoc) {
// Suppress verbose per-language "Message file not found" warnings during test runs.
// These are expected when translation files haven't been produced yet.
process.env.SUPPRESS_LOC_WARNINGS = '1'
run('yarn run localize')
}
const extra = passthrough.length > 0 ? ' ' + passthrough.join(' ') : ''
run(`node ${script}${extra}`)