VSCode 扩展测试服务
测试环境:
WebdriverIO 服务,用于测试 VSCode 扩展。
这个 WebdriverIO 服务允许你在 VSCode 桌面 IDE 或作为 Web 扩展无缝测试你的 VSCode 扩展。你只需提供扩展的路径,服务会完成剩下的工作:
- 🏗️ 安装 VSCode(可以是
stable、insiders或指定版本) - ⬇️ 下载特定 VSCode 版本对应的 Chromedriver
- 🚀 使你能够从测试中访问 VSCode API
- 🖥️ 使用自定义用户设置启动 VSCode(支持 Ubuntu、MacOS 和 Windows 上的 VSCode)
- 🌐 或从服务器提供 VSCode 以供任何浏览器访问,从而测试网页扩展
- 📔 引导页面对象,使其定位器与你的 VSCode 版本匹配
这个项目受到基于 Selenium 的 vscode-extension-tester 项目的高度启发。这个包采用了这个想法并将其适配到 WebdriverIO。
从 VSCode v1.86 开始,需要使用 webdriverio v8.14 或更高版本来安装 Chromedriver,无需任何配置。如果你需要测试早期版本的 VSCode,请参阅下面的 Chromedriver 配置 部分。
安装
要初始化一个新的 WebdriverIO 项目,运行:
npm create wdio ./
安装向导将引导你完成该过程。确保你选择 TypeScript 作为编译器,并且不要让它为你生成页面对象,因为这个项目已经包含了所有需要的页面对象。然后确保在服务列表中选择 vscode:

关于如何安装 WebdriverIO 的更多信息,请查看项目文档。
示例配置
要使用该服务,你需要将 vscode 添加到你的服务列表中,后面可以跟一个可选的配置对象。这将使 WebdriverIO 下载指定的 VSCode 二进制文件和相应的 Chromedriver 版本:
// wdio.conf.ts
export const config = {
outputDir: 'trace',
// ...
capabilities: [{
browserName: 'vscode',
browserVersion: '1.86.0', // "insiders" 或 "stable" 用于最新的 VSCode 版本
'wdio:vscodeOptions': {
extensionPath: __dirname,
userSettings: {
"editor.fontSize": 14
}
}
}],
services: ['vscode'],
/**
* 可选地定义 WebdriverIO 存储所有 VSCode 二进制文件的路径,例如:
* services: [['vscode', { cachePath: __dirname }]]
*/
// ...
};
如果你在 browserName 不是 vscode 而是其他值(如 chrome)的情况下定义 wdio:vscodeOptions,服务将把扩展作为网页扩展提供。如果你在 Chrome 上测试,不需要额外的驱动服务,例如:
// wdio.conf.ts
export const config = {
outputDir: 'trace',
// ...
capabilities: [{
browserName: 'chrome',
'wdio:vscodeOptions': {
extensionPath: __dirname
}
}],
services: ['vscode'],
// ...
};
注意: 在测试网页扩展时,你只能在 stable 或 insiders 之间选择作为 browserVersion。