Run and filter integration tests in the VS Code repo confidently.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "integration-tests" skill from askskill: 1. Download https://raw.githubusercontent.com/microsoft/vscode/main/.github/skills/integration-tests/SKILL.md 2. Save it as ~/.claude/skills/integration-tests/SKILL.md 3. Reload skills and tell me it's ready
Explain how to run integration tests in the VS Code repo and execute only a specific test file or test name, with command examples for macOS/Linux and Windows.
Provides the correct scripts, supported filtering arguments, and command examples for different operating systems.
Explain the difference between node.js integration tests and extension host tests in the VS Code repo, when to use each, and what to watch out for when running them.
Summarizes the purpose, runtime differences, common use cases, and key caveats for both test types.
I want to filter by folder, file, or test name when running scripts/test-integration.sh or scripts/test-integration.bat. List the supported arguments and explain common mistakes.
Lists supported arguments, explains filtering methods, and highlights common mistakes with corrections.
Integration tests in VS Code are split into two categories:
.integrationTest.ts under src/. These run in Electron via the same Mocha runner as unit tests.extensions/ (API tests, Git tests, TypeScript tests, etc.). These launch a full VS Code instance with --extensionDevelopmentPath../scripts/test-integration.sh [options].\scripts\test-integration.bat [options]When run without filters, both scripts execute all node.js integration tests followed by all extension host tests.
When run with --run or --runGlob (without --suite), only the node.js integration tests are run and the filter is applied. Extension host tests are skipped since these filters are node.js-specific.
When run with --grep alone (no --run, --runGlob, or --suite), all tests are run -- both node.js integration tests and all extension host suites -- with the grep pattern forwarded to every test runner.
When run with --suite, only the matching extension host test suites are run. Node.js integration tests are skipped. Combine --suite with --grep to filter individual tests within the selected suites.
--run <file> - Run tests from a specific fileAccepts a source file path (starting with src/). Works identically to scripts/test.sh --run.
./scripts/test-integration.sh --run src/vs/workbench/services/search/test/browser/search.integrationTest.ts
--runGlob <pattern> (aliases: --glob, --runGrep) - Select test files by pathSelects which test files to load by matching compiled .js file paths against a glob pattern. Overrides the default **/*.integrationTest.js glob. Only applies to node.js integration tests (extension host tests are skipped).
./scripts/test-integration.sh --runGlob "**/search/**/*.integrationTest.js"
--grep <pattern> (aliases: -g, -f) - Filter test cases by nameFilters which test cases run by matching against their test titles (e.g. describe/test names). When used alone, the grep is applied to both node.js integration tests and all extension host suites. When combined with --suite, only the matched suites run with the grep.
./scripts/test-integration.sh --grep "TextSearchProvider"
--suite <pattern> - Run specific extension host test suitesRuns only the extension host test suites whose name matches the pattern. Supports comma-separated values and shell glob patterns (on macOS/Linux). Node.js integration tests are skipped.
Available suite names: api-folder, api-workspace, colorize, terminal-suggest, typescript, markdown, emmet, git, git-base, ipynb, notebook-renderers, configuration-editing, github-authentication, css, html.
# Run only Git extension tests
./scripts/test-integration.sh --suite git
# Run API folder and workspace tests (glob, macOS/Linux only)
./scripts/test-integration.sh --suite 'api*'
# Run multiple specific suites
./scripts/test-integration.sh --suite 'git,emmet,typescript'
# Filter tests within a suite by name
./scripts/test-integration.sh --suite api-folder --grep 'should open'
--help, -h - Show help./scripts/test-integration.sh --help
All other options (e.g. --timeout, --coverage, --reporter) are forwarded to the underlying scripts/test.sh runner for node.js integration tests. These extra options are not forwarded to extension host suites when using --suite.
# Run all integration tests (node.js + extension host)
./scripts/test-integration.sh
# Run a single integration test file
./scripts/test-integration.sh --run src/vs/workbench/services/search/test/browser/search.integrationTest.ts
# Run integration tests matching a grep pattern
…
Validate Azure DevOps pipeline changes and troubleshoot builds and YAML faster.
Upgrade Anthropic SDKs, migrate versions, and fix dependency or typing issues.
Generate or update chat customization files for AI coding agents.
Find and read Code OSS dev build logs for faster debugging.
Merge session branch changes back into the base branch cleanly.
Create and maintain screenshot test fixtures for UI components effectively.
Run, filter, and debug unit tests in the VS Code repository.
Run vscode.dev locally to test the VS Code workbench and Agents window.
Automate VS Code performance and memory investigations with repeatable evidence capture.
Let AI control VS Code for coding, debugging, screenshots, and test automation.
Launch VS Code OSS in isolation for automation and multi-process debugging.
Give your VS Code agent real debugging with breakpoints, stepping, and inspection.