基于编译后源码运行vscode-extension-tester遇问题,求正确流程?
VS Code Extension Tester 源码运行测试问题解答
一、EXTENSION_DEV_PATH 使用说明
你当前对EXTENSION_DEV_PATH的用法本身没有错误,但该环境变量的优先级和加载逻辑可能不如命令行参数可靠,这可能是导致扩展未正确激活的原因之一。
二、基于编译后源码运行测试的正确流程
以下是经过验证的标准流程,替换你之前的命令:
完成依赖安装与源码编译
- 执行
npm install安装项目所有依赖 - 执行
npm run compile将源码编译至out目录
- 执行
预下载测试依赖
- 执行
npx extester get-vscode --version max下载对应版本的VS Code(直接指定版本避免后续重复配置) - 执行
npx extester get-chromedriver自动匹配下载对应版本的ChromeDriver
- 执行
运行测试的正确命令
推荐使用命令行参数--extensionDevelopmentPath替代环境变量,这是官方文档指定的标准方式,兼容性更好:npx extest run-tests './out/ui-test/*.test.js' --code_version max --code_settings settings.json --extensionDevelopmentPath=$(pwd)Windows环境下使用PowerShell的话,路径写法调整为:
npx extest run-tests './out/ui-test/*.test.js' --code_version max --code_settings settings.json --extensionDevelopmentPath=$PWD前置检查项
- 确认
package.json中的activationEvents配置正确,比如你的扩展命令是hello-world和webview-test,需确保配置包含onCommand:hello-world、onCommand:webview-test(测试阶段可临时用*快速验证) - 检查
out目录下的编译产物完整,extension.js需包含正确的activate函数逻辑
- 确认
三、日志不显示的排查方案
- 源码模式下VS Code的日志路径与VSIX包模式不同,可通过
--log-path参数指定日志输出目录,方便定位问题:npx extest run-tests './out/ui-test/*.test.js' --code_version max --code_settings settings.json --extensionDevelopmentPath=$(pwd) --log-path ./test-logs - 注意:
activate函数中的console.log输出到VS Code的扩展宿主日志,而非调试控制台(调试模式的控制台与测试运行时的宿主日志是两个独立输出通道)
四、Bug报告处理建议
如果按照上述流程操作后问题仍然存在,说明大概率是Extension Tester的框架问题,可保留你提交的报告;若问题解决,再删除报告即可。
内容的提问来源于stack exchange,提问作者Zack
相关产品推荐
相关产品推荐

