VSCode扩展测试:在测试中使用`vcode.ecuteDefinitionProvider` [英] VSCode extension testing: Use `vscode.executeDefinitionProvider` in test

查看:0
本文介绍了VSCode扩展测试:在测试中使用`vcode.ecuteDefinitionProvider`的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

背景

我正在尝试自动测试我的VSCode扩展。该扩展适用于python文件,并对其使用vscode.executeDefinitionProvidervscode.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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆