| import * as path from "path"; |
| import * as fs from "fs"; |
| |
| import { runTests } from "@vscode/test-electron"; |
| |
| async function main() { |
| // The folder containing the Extension Manifest package.json |
| // Passed to `--extensionDevelopmentPath` |
| const extensionDevelopmentPath = path.resolve(__dirname, "../../"); |
| |
| // Minimum supported version. |
| const jsonData = fs.readFileSync(path.join(extensionDevelopmentPath, "package.json")); |
| const json = JSON.parse(jsonData.toString()); |
| let minimalVersion: string = json.engines.vscode; |
| if (minimalVersion.startsWith("^")) minimalVersion = minimalVersion.slice(1); |
| |
| const launchArgs = ["--disable-extensions", extensionDevelopmentPath]; |
| |
| // All test suites (either unit tests or integration tests) should be in subfolders. |
| const extensionTestsPath = path.resolve(__dirname, "./unit/index"); |
| |
| // Run tests using the minimal supported version. |
| await runTests({ |
| version: minimalVersion, |
| launchArgs, |
| extensionDevelopmentPath, |
| extensionTestsPath, |
| }); |
| |
| // and the latest one |
| await runTests({ |
| version: "stable", |
| launchArgs, |
| extensionDevelopmentPath, |
| extensionTestsPath, |
| }); |
| } |
| |
| main().catch((err) => { |
| // eslint-disable-next-line no-console |
| console.error("Failed to run tests", err); |
| process.exit(1); |
| }); |