我正在开发一个 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);
})
问题是当我这样做时,正如可能提到的here https://github.com/Microsoft/vscode/issues/58#issuecomment-205370778,在我实际测试我的代码之前测试就停止运行。
有没有办法可以安全地打开工作区并在测试期间使用它?
看看docs用于测试扩展:测试扩展文档 https://vscode-docs.readthedocs.io/en/stable/extensions/testing-extensions/
In the .vscode/launch.json开发中的扩展文件,您可以传递参数像这样(来自文档):
"args": ["file or folder name", "--extensionDevelopmentPath=${workspaceRoot}", "--extensionTestsPath=${workspaceRoot}/out/test" ]
所以你可以创建一个测试目录结构包含您在配置中指定的文件夹中关心的所有文件,并将这些目录/文件添加到您的.vscodeignore(默认的测试目录已经在那里)。
the 选择到目前为止我一直在使用的是bash脚本包含以下内容:
#!/bin/bash
# $0 = command itself
# $1 = extension-directory(relative path)
# $2 = process-id of code to kill
[ -z "$1" ] && { echo "path-argument not supplied"; exit 1; }
[ -z "$2" ] || { xkill -id $2; }
cd $1
vsce package
file=$(find . -name "*.vsix")
code --install-extension $file
code &
echo $!
剩下的就是在启动的代码实例中打开一个文件夹并执行任何有问题的命令。
从长远来看,建立适当的测试环境对我来说似乎更有利可图,至少在可以预测必须进行许多测试的情况下是如此。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)