Skip to content

nachocab/vscode-test-cli

 
 

Repository files navigation

@vscode/test

This is an experimental command-line test runner is available. Its API may change as we get feedback on it. Please try it out!

This is an configuration-driver command line runner for VS Code extension tests. It provides a simple, configuration-driven interface for running tests, and has its own VS Code extension that allows running tests in the UI.

Install with:

npm install --save-dev @vscode/test

After installing the package, the runner is available as the vscode-test CLI. Running it will look for a .vscode-test.(js/json/mjs) file relative to the current working directory. You can see the configuration here. This may be as simple as:

// .vscode-test.mjs
import { defineConfig } from '@vscode/test';

export default defineConfig({ files: 'out/test/**/*.test.js' });

Or include more options. For example:

// .vscode-test.mjs
import { defineConfig } from '@vscode/test';

export default defineConfig([
	{
		// Required: Glob of files to load (can be an array and include absolute paths).
		files: 'out/test/**/*.test.js',
		// Optional: Version to use, same as the API above, defaults to stable
		version: 'insiders',
		// Optional: Root path of your extension, same as the API above, defaults
		// to the directory this config file is in
		extensionDevelopmentPath: __dirname,
		// Optional: sample workspace to open
		workspaceFolder: `${__dirname}/sampleWorkspace`,
		// Optional: additional mocha options to use:
		mocha: {
			preload: `./out/test-utils.js`,
			timeout: 20000,
		},
	},
	// you can specify additional test configurations if necessary
]);

Tests included with this command line are run in Mocha. You can run the tests simply by running vscode-test on the command line. You can view more options with vscode-test --help; this command line is very similar to Mocha. For example, to watch and run only tests named "addition", you can run:

vscode-test --watch 'out/**/*.js' --grep 'addition'

Debugging

Add or update an extensionHost launch-type config with the path to your test configuration:

{
	"type": "extensionHost",
	"request": "launch",
	"name": "My extension tests",
+	"testConfiguration": "${workspaceFolder}/.vscode-test.js",
	"args": ["--extensionDevelopmentPath=${workspaceFolder}"]
},

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

About

Command-line runner for VS Code tests

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 59.5%
  • TypeScript 40.5%