78 lines
2.2 KiB
Plaintext
78 lines
2.2 KiB
Plaintext
|
#!/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()
|