我正在开发一个VSCode扩展,它考虑了当前在工作区中打开的文件的路径。
因此,为了获得可重现的测试,我尝试在VSCode中打开测试文件夹本身,然后打开其中的测试文件,如下所示:
import * as vscode from "vscode";
test("whatever", async function() {
let workspaceUri = vscode.Uri.file(__dirname);
// the tests stop here...
await vscode.commands.executeCommand("vscode.openFolder", workspaceUri);
await vscode.workspace.openTextDocument(__filename);
})
问题是当我这样做的时候,正如这里可能提到的,测试在我实际测试代码之前就停止运行了。
是否有一种方法可以安全地打开工作区并在测试期间使用它?
3条答案
按热度按时间x0fgdtte1#
请查看文档以了解测试扩展:Testing-extensions-docs
在正在开发的扩展的**.vscode/launch.json文件中,您可以像这样传递参数**(来自文档):
因此,您可以创建一个testing目录结构,其中包含您在config中指定的文件夹中关心的所有文件,并将这些目录/文件添加到您的**.vscodeignore中(默认的test-directory已经在那里了)。
到目前为止,我一直使用的替代方法是使用bash脚本**,其内容如下:
剩下的工作就是在启动的代码示例中打开一个文件夹并执行任何有问题的命令。从长远来看,建立一个合适的测试环境对我来说似乎更有好处,至少在可以预测到必须进行许多测试的时候。
k10s72fa2#
也可以使用***VSBrowser.instance.openResources(路径)***打开VSCode示例中的工作区/文件夹;
w8f9ii693#
接受的答案在2023年对我不起作用。我无法通过修改
launch.json
让VS代码打开工作区。相反,@vscode/test-electron runTests接受一个
launchArgs
参数,如果第一个参数是一个目录,它将作为工作区打开。为了进行测试,我将其设置为tmp-promise创建的临时目录。
sample in the VS Code test repository是一个很好的地方,可以从中找到一个很好的、大概是最新的示例。