我如何 运行 集成测试依赖于其他扩展的 vscode 扩展
How do I run integration tests for a vscode extension that depends on other extensions
vscode API 文档包括 a page on how to test extensions. This works well when you have a single extension with no dependencies. However, in our case, we extensionDependencies
since our extension depends on hbenl.vscode-test-explorer
。
在我们的 CI 服务器上,我们有一个问题,在安装此依赖项之前我们无法 运行 测试,但是 vscode 没有暴露 API的测试 API 安装扩展。
我们 可以 下载我们自己的 vscode 副本并使用 --install-extension
命令安装此依赖项,但这使事情变得复杂,因为现在我们正在管理API 用来管理的下载。
我想探索两种合理的可能性:
- 如何在激活我的扩展程序时禁用
extensionDependencies
?
- 如何将依赖项下载为
vscode-test
运行 的一部分?
不知何故,我在文档中遗漏了这一点。 Custom setup with vscode-test
.
代码可在 link 获得,因此我不会全部复制。这是最相关的部分:
const vscodeExecutablePath = await downloadAndUnzipVSCode('stable');
const cliPath = resolveCliPathFromVSCodeExecutablePath(vscodeExecutablePath);
// Use cp.spawn / cp.exec for custom setup
cp.spawnSync(cliPath, ['--install-extension', '<EXTENSION-ID-OR-PATH-TO-VSIX>'], {
encoding: 'utf-8',
stdio: 'inherit'
});
尝试应用 Andrew 的解决方案时的一些附加信息。
将 test-electro
添加到您的项目
在package.json
下"devDependencies":
添加"@vscode/test-electron": "^1.6.2",
(选择适合自己的版本)
查找扩展 ID
打开扩展信息页面(如安装扩展时)。您可以在单击齿轮时复制 扩展程序 ID(见下文)
vscode API 文档包括 a page on how to test extensions. This works well when you have a single extension with no dependencies. However, in our case, we extensionDependencies
since our extension depends on hbenl.vscode-test-explorer
。
在我们的 CI 服务器上,我们有一个问题,在安装此依赖项之前我们无法 运行 测试,但是 vscode 没有暴露 API的测试 API 安装扩展。
我们 可以 下载我们自己的 vscode 副本并使用 --install-extension
命令安装此依赖项,但这使事情变得复杂,因为现在我们正在管理API 用来管理的下载。
我想探索两种合理的可能性:
- 如何在激活我的扩展程序时禁用
extensionDependencies
? - 如何将依赖项下载为
vscode-test
运行 的一部分?
不知何故,我在文档中遗漏了这一点。 Custom setup with vscode-test
.
代码可在 link 获得,因此我不会全部复制。这是最相关的部分:
const vscodeExecutablePath = await downloadAndUnzipVSCode('stable');
const cliPath = resolveCliPathFromVSCodeExecutablePath(vscodeExecutablePath);
// Use cp.spawn / cp.exec for custom setup
cp.spawnSync(cliPath, ['--install-extension', '<EXTENSION-ID-OR-PATH-TO-VSIX>'], {
encoding: 'utf-8',
stdio: 'inherit'
});
尝试应用 Andrew 的解决方案时的一些附加信息。
将 test-electro
添加到您的项目
在package.json
下"devDependencies":
添加"@vscode/test-electron": "^1.6.2",
(选择适合自己的版本)
查找扩展 ID
打开扩展信息页面(如安装扩展时)。您可以在单击齿轮时复制 扩展程序 ID(见下文)