我如何 运行 集成测试依赖于其他扩展的 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 用来管理的下载。

我想探索两种合理的可能性:

  1. 如何在激活我的扩展程序时禁用 extensionDependencies
  2. 如何将依赖项下载为 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(见下文)