vscode/test/unit
Johannes Rieken a5698e8857
Joh/rainy-mollusk (#200976)
* snippet completions should also check with the completion model

this will allow to return "more" from the snippet completion item provider and rely on the completions model to do some filtering

* when debugging tests allow to use console.log

* fix https://github.com/microsoft/vscode/issues/191070
2023-12-15 16:07:56 +01:00
..
browser eng: support runGlob in browser unit tests (#199979) 2023-12-04 12:14:25 -08:00
electron Joh/rainy-mollusk (#200976) 2023-12-15 16:07:56 +01:00
node eng: add assertHeap method for memory assertions (#198334) 2023-11-15 10:41:22 -08:00
analyzeSnapshot.js eng: add assertHeap method for memory assertions (#198334) 2023-11-15 10:41:22 -08:00
assert.js Check notebook URIs in BulkCellEdits (#169669) 2023-01-07 17:35:25 -08:00
coverage.js fix: parse errors in coverage command (#156837) 2022-08-05 18:27:40 +02:00
fullJsonStreamReporter.js eng: add support for snapshot tests (#190444) 2023-08-15 12:03:51 -07:00
README.md Fix supported markdown-lint violations in markdown files (#190750) 2023-08-24 08:37:25 +00:00
reporter.js auto-fixed prefer-const violation 2022-06-08 17:49:21 +02:00

Unit Tests

Run (inside Electron)

./scripts/test.[sh|bat]

All unit tests are run inside a Electron renderer environment which access to DOM and Nodejs api. This is the closest to the environment in which VS Code itself ships. Notes:

  • use the --debug to see an electron window with dev tools which allows for debugging
  • to run only a subset of tests use the --run or --glob options
  • use yarn watch to automatically compile changes

For instance, ./scripts/test.sh --debug --glob **/extHost*.test.js runs all tests from extHost-files and enables you to debug them.

Run (inside browser)

yarn test-browser --browser webkit --browser chromium

Unit tests from layers common and browser are run inside chromium, webkit, and (soon'ish) firefox (using playwright). This complements our electron-based unit test runner and adds more coverage of supported platforms. Notes:

  • these tests are part of the continuous build, that means you might have test failures that only happen with webkit on windows or chromium on linux
  • you can run these tests locally via yarn test-browser --browser chromium --browser webkit
  • to debug, open <vscode>/test/unit/browser/renderer.html inside a browser and use the ?m=<amd_module>-query to specify what AMD module to load, e.g file:///Users/jrieken/Code/vscode/test/unit/browser/renderer.html?m=vs/base/test/common/strings.test runs all tests from strings.test.ts
  • to run only a subset of tests use the --run or --glob options

Note: you can enable verbose logging of playwright library by setting a DEBUG environment variable before running the tests (https://playwright.dev/docs/debug#verbose-api-logs)

Run (with node)

yarn test-node --run src/vs/editor/test/browser/controller/cursor.test.ts

Coverage

The following command will create a coverage folder in the .build folder at the root of the workspace:

OS X and Linux

./scripts/test.sh --coverage

Windows

scripts\test --coverage