我正在尝试自动测试我的VSCode扩展。该扩展适用于python文件,并对其使用vscode.executeDefinitionProvider
和vscode.executeDocumentSymbolProvider
。
vscode.executeDefinitionProvider
始终返回[]
,vscode.executeDocumentSymbolProvider
始终返回undefined
。
在扩展的调试会话(无测试会话)中运行相同代码时,这些命令可以完美地工作。
我确保扩展在测试期间可用,甚至用
手动激活它们let ext = vscode.extensions.getExtension("ms-python.python");
assert.notStrictEqual (ext, undefined);
await ext?.activate ();
ext = vscode.extensions.getExtension("ms-python.vscode-pylance");
assert.notStrictEqual (ext, undefined);
await ext?.activate ();
如何使命令在自动测试期间成功。
显然,VSCode需要花费一些时间才能真正激活扩展。我可以将await sleep (10000);
放在index.ts
::run ()
中,return new Promise((c, e) => {
之前。
在此过程中,这是一种非常不稳定的解决方法,是否有办法让代码等待到整个环境完全加载?
Extension<T>::activate(): Thenable<T>
返回:Thenable<T>
-激活此扩展时将解析的承诺。
await ext?.activate();