Describe the bug
EXTENSION_DEV_PATH appears to have no effect on run-tests.
I cloned vscode-extension-tester-example and tried to run the tests on the compiled source (instead of the .vsix file).
Specifically, I ran the following after cloning the repository:
npm install
npm run compile
npx extester get-vscode
npx extester get-chromedriver
EXTENSION_DEV_PATH=$(pwd) node ../../vscode-extension-tester/packages/extester/out/cli.js run-tests './out/ui-test/*.test.js' --code_version max --code_settings settings.json
When I do this, the tests run, but several fail. If you watch carefully, you can see that the Hello World and WebView Test commands are not available.
If this is not the correct way to run the tests on the compiled project source, then please add detail to the documentation.
If this is the correct way, I think I may see the source of the bug:
CodeUtil.runTests sets process.env.EXTENSION_DEV_PATH before it would ever be read. Thus, any value ever passed from the environment simply gets overwritten.
async runTests(testFilesPattern: string[], runOptions: RunOptions = DEFAULT_RUN_OPTIONS): Promise<number> {
if (!runOptions.offline) {
await this.checkCodeVersion(runOptions.vscodeVersion ?? DEFAULT_RUN_OPTIONS.vscodeVersion);
} else {
this.availableVersions = [this.getExistingCodeVersion()];
}
const literalVersion =
runOptions.vscodeVersion === undefined || runOptions.vscodeVersion === 'latest' ? this.availableVersions[0] : runOptions.vscodeVersion;
// add chromedriver to process' path
const finalEnv: NodeJS.ProcessEnv = {};
Object.assign(finalEnv, process.env);
const key = 'PATH';
finalEnv[key] = [this.downloadFolder, process.env[key]].join(path.delimiter);
console.log('In CodeUtil 1. Extensions Folder: ', this.extensionsFolder);
console.log(process.env);
process.env = finalEnv;
process.env.TEST_RESOURCES = this.downloadFolder;
process.env.EXTENSIONS_FOLDER = this.extensionsFolder;
====> process.env.EXTENSION_DEV_PATH = this.coverage ? process.cwd() : undefined;
I discovered this when I added console.log(process.env) to the line before this one
let options = new Options().setChromeBinaryPath(codePath).addArguments(...args) as any;
and saw that EXTENSION_DEV_PATH was undefined
I also went into node_modules and commented out line 309 of codeUtil.js and the above sequence behaved as I expected.
Steps to reproduce
Specifically, I ran the following after cloning the repository:
npm install
npm run compile
npx extester get-vscode
npx extester get-chromedriver
EXTENSION_DEV_PATH=$(pwd) node ../../vscode-extension-tester/packages/extester/out/cli.js run-tests './out/ui-test/*.test.js' --code_version max --code_settings settings.json
Logs
Operating System
macOS 15.5
Visual Studio Code
1.102.0
vscode-extension-tester
8.17.0
NodeJS
24
npm
No response
Describe the bug
EXTENSION_DEV_PATH appears to have no effect on run-tests.
I cloned
vscode-extension-tester-exampleand tried to run the tests on the compiled source (instead of the .vsix file).Specifically, I ran the following after cloning the repository:
npm installnpm run compilenpx extester get-vscodenpx extester get-chromedriverEXTENSION_DEV_PATH=$(pwd) node ../../vscode-extension-tester/packages/extester/out/cli.js run-tests './out/ui-test/*.test.js' --code_version max --code_settings settings.jsonWhen I do this, the tests run, but several fail. If you watch carefully, you can see that the
Hello WorldandWebView Testcommands are not available.If this is not the correct way to run the tests on the compiled project source, then please add detail to the documentation.
If this is the correct way, I think I may see the source of the bug:
CodeUtil.runTestssetsprocess.env.EXTENSION_DEV_PATHbefore it would ever be read. Thus, any value ever passed from the environment simply gets overwritten.I discovered this when I added
console.log(process.env)to the line before this oneand saw that EXTENSION_DEV_PATH was
undefinedI also went into
node_modulesand commented out line 309 ofcodeUtil.jsand the above sequence behaved as I expected.Steps to reproduce
Specifically, I ran the following after cloning the repository:
npm installnpm run compilenpx extester get-vscodenpx extester get-chromedriverEXTENSION_DEV_PATH=$(pwd) node ../../vscode-extension-tester/packages/extester/out/cli.js run-tests './out/ui-test/*.test.js' --code_version max --code_settings settings.jsonLogs
Operating System
macOS 15.5
Visual Studio Code
1.102.0
vscode-extension-tester
8.17.0
NodeJS
24
npm
No response