VSCode扩展测试:在测试中使用`vcode.ecuteDefinitionProvider` [英] VSCode extension testing: Use `vscode.executeDefinitionProvider` in test
本文介绍了VSCode扩展测试:在测试中使用`vcode.ecuteDefinitionProvider`的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
背景
我正在尝试自动测试我的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();
这篇关于VSCode扩展测试:在测试中使用`vcode.ecuteDefinitionProvider`的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文