AI_Assistant/node_modules/vscode/bin/test

78 lines
2.2 KiB
JavaScript

#!/usr/bin/env node
const path = require('path');
const cp = require('child_process');
const fs = require('fs');
const downloadAndUnzipVSCode = require('vscode-test').downloadAndUnzipVSCode;
var testsFolder;
if (process.env.CODE_TESTS_PATH) {
testsFolder = process.env.CODE_TESTS_PATH;
} else if (fs.existsSync(path.join(process.cwd(), 'out', 'test'))) {
testsFolder = path.join(process.cwd(), 'out', 'test'); // TS extension
} else {
testsFolder = path.join(process.cwd(), 'test'); // JS extension
}
var testsWorkspace = process.env.CODE_TESTS_WORKSPACE || testsFolder;
var extensionsFolder = process.env.CODE_EXTENSIONS_PATH || process.cwd();
var locale = process.env.CODE_LOCALE || 'en';
var userDataDir = process.env.CODE_TESTS_DATA_DIR;
console.log('### VS Code Extension Test Run ###');
console.log('');
console.log('Current working directory: ' + process.cwd());
function runTests(executablePath) {
var args = [
testsWorkspace,
'--extensionDevelopmentPath=' + extensionsFolder,
'--extensionTestsPath=' + testsFolder,
'--locale=' + locale,
];
if (userDataDir) {
args.push('--user-data-dir=' + userDataDir);
}
if (process.env.CODE_DISABLE_EXTENSIONS) {
args.push('--disable-extensions');
}
console.log('Running extension tests: ' + [executablePath, args.join(' ')].join(' '));
var cmd = cp.spawn(executablePath, args);
cmd.stdout.on('data', function (data) {
console.log(data.toString());
});
cmd.stderr.on('data', function (data) {
console.error(data.toString());
});
cmd.on('error', function (data) {
console.log('Failed to execute tests: ' + data.toString());
});
cmd.on('close', function (code) {
console.log('Tests exited with code: ' + code);
if (code !== 0) {
process.exit(code); // propagate exit code to outer runner
}
});
}
function downloadExecutableAndRunTests() {
downloadAndUnzipVSCode(process.env.CODE_VERSION).then(executablePath => {
runTests(executablePath)
}).catch(err => {
console.error('Failed to run test with error:')
console.log(err);
process.exit(1);
})
}
downloadExecutableAndRunTests()