Run VS Code tests using Jest Testing Framework
npm install vscode-jest-test-runner jest --save-dev
yarn add vscode-jest-test-runner jest --dev
{
"version": "0.2.0",
"configurations": [
{
"name": "Jest: Extension Tests",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--disable-extensions",
"--extensionDevelopmentPath=${workspaceFolder}",
"--extensionTestsPath=${workspaceFolder}/node_modules/vscode-jest-test-runner"
],
"outFiles": ["${workspaceFolder}/dist/**/*.js"],
"preLaunchTask": "npm: compile",
"internalConsoleOptions": "openOnSessionStart",
"env": {
"JEST_TEST_RUNNER_TEST_REGEX": "",
"JEST_TEST_RUNNER_UPDATE_SNAPSHOTS": "false"
}
},
{
"name": "Jest: Current Test File",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--disable-extensions",
"--extensionDevelopmentPath=${workspaceFolder}",
"--extensionTestsPath=${workspaceFolder}/node_modules/vscode-jest-test-runner"
],
"outFiles": ["${workspaceFolder}/dist/**/*.js"],
"preLaunchTask": "npm: compile",
"internalConsoleOptions": "openOnSessionStart",
"env": {
"JEST_TEST_RUNNER_TEST_REGEX": "${file}",
"JEST_TEST_RUNNER_UPDATE_SNAPSHOTS": "false"
}
},
{
"name": "Jest: Update All Snapshots",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--disable-extensions",
"--extensionDevelopmentPath=${workspaceFolder}",
"--extensionTestsPath=${workspaceFolder}/node_modules/vscode-jest-test-runner"
],
"outFiles": ["${workspaceFolder}/dist/**/*.js"],
"preLaunchTask": "npm: compile",
"internalConsoleOptions": "openOnSessionStart",
"env": {
"JEST_TEST_RUNNER_TEST_REGEX": "",
"JEST_TEST_RUNNER_UPDATE_SNAPSHOTS": "true"
}
},
{
"name": "Jest: Update Snapshots in Current Test File",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--disable-extensions",
"--extensionDevelopmentPath=${workspaceFolder}",
"--extensionTestsPath=${workspaceFolder}/node_modules/vscode-jest-test-runner"
],
"outFiles": ["${workspaceFolder}/dist/**/*.js"],
"preLaunchTask": "npm: compile",
"internalConsoleOptions": "openOnSessionStart",
"env": {
"JEST_TEST_RUNNER_TEST_REGEX": "${file}",
"JEST_TEST_RUNNER_UPDATE_SNAPSHOTS": "true"
}
}
]
}
The pattern Jest uses to detect test files.
Example
env
settings:"env": { "JEST_TEST_RUNNER_TEST_REGEX": "${file}", }
Use this to re-record every snapshot that fails during this test run. Can be used together with JEST_TEST_RUNNER_TEST_REGEX
to re-record snapshots.
Example
env
settings:"env": { "JEST_TEST_RUNNER_UPDATE_SNAPSHOTS": "true", }
The path to a module that runs some code to configure or set up the testing framework before each test. You can use this to mock VS Code APIs, such as forcing the getConfiguration
API to use an in-memory cache vs. interacting with the file system (see shifty example).
Example
env
settings:"env": { "JEST_TEST_RUNNER_SETUP": "${workspaceFolder}/dist/test-utils/vscode-jest-test-runner-setup.js", }
- Fork this repository to your own GitHub account and then clone it to your local device
- Install the dependecies using
yarn
- Link the package to the global module directory:
yarn link
- Run
yarn test --watch
and start making your changes - You can use
yarn link vscode-jest-test-runner
to test your changes in a local project - Ensure any changes are documented in
CHANGELOG.md
MIT © Brent Mealhouse