【问题标题】:How do I run integration tests for a vscode extension that depends on other extensions如何为依赖于其他扩展的 vscode 扩展运行集成测试
【发布时间】:2021-02-09 05:41:49
【问题描述】:

vscode API 文档包括a page on how to test extensions。当您有一个没有依赖项的单个扩展时,这很有效。然而,在我们的例子中,我们extensionDependencies,因为我们的扩展依赖于hbenl.vscode-test-explorer

在我们的 CI 服务器上,我们遇到了一个问题,即在安装此依赖项之前我们无法运行测试,但是 vscode 的测试 API 没有暴露用于安装扩展的 API。

我们可以下载我们自己的 vscode 副本并使用 --install-extension 命令安装此依赖项,但这会使事情变得复杂,因为现在我们正在管理 API 用于管理的下载。 p>

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

  1. 如何在激活我的扩展程序时禁用extensionDependencies
  2. 如何在 vscode-test 运行过程中下载依赖项?

【问题讨论】:

    标签: visual-studio-code integration-testing vscode-extensions


    【解决方案1】:

    不知何故,我在文档中错过了这一点。 Custom setup with vscode-test.

    代码在链接中可用,所以我不会全部复制。这是最相关的部分:

        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'
        });
    

    【讨论】:

    • 这是否为您解决了问题?我想为具有另一个(ms-python.python)作为依赖项的扩展编写一个测试,但是每当我运行测试时,都会提示:无法激活“xxx”扩展,因为它依赖于“Python”扩展程序,未安装。您要安装扩展程序并重新加载窗口吗?即使有你的解决方案:(
    • 是的,确实如此。我只是忘了接受答案。
    【解决方案2】:

    尝试应用 Andrew 的解决方案时的一些附加信息。

    test-electro 添加到您的项目中

    package.json
    "devDependencies":
    添加"@vscode/test-electron": "^1.6.2",(选择适合你的版本)

    查找扩展 ID

    打开扩展信息页面(例如在安装扩展时)。您可以在点击齿轮时复制扩展 ID(见下文)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-27
      • 2020-07-12
      • 1970-01-01
      • 2019-10-19
      • 2018-09-11
      • 1970-01-01
      • 2021-06-30
      • 1970-01-01
      相关资源
      最近更新 更多