Visual studio code 当通过包管理器调用测试时,vscode.executeDefinitionProvider返回空的vscode.Location[]
我正在创建我的第一个VS代码扩展,但现在我在自动测试扩展时卡住了。 如果我用VS代码运行自动化测试,一切正常,但我希望在持续集成管道中运行测试,这就是为什么如果我使用Visual studio code 当通过包管理器调用测试时,vscode.executeDefinitionProvider返回空的vscode.Location[],visual-studio-code,dynamics-business-central,Visual Studio Code,Dynamics Business Central,我正在创建我的第一个VS代码扩展,但现在我在自动测试扩展时卡住了。 如果我用VS代码运行自动化测试,一切正常,但我希望在持续集成管道中运行测试,这就是为什么如果我使用npm run test调用它们,测试也应该运行的原因 使用npm run test我的大多数测试都会成功运行,但只要测试方法依赖于“vscode.executeDefinitionProvider”-输出,测试就会失败,因为它找不到任何定义 await vscode.commands.executeCommand<vscod
npm run test
调用它们,测试也应该运行的原因
使用npm run test
我的大多数测试都会成功运行,但只要测试方法依赖于“vscode.executeDefinitionProvider”-输出,测试就会失败,因为它找不到任何定义
await vscode.commands.executeCommand<vscode.Location[]>('vscode.executeDefinitionProvider', document.uri, positionToSearchForSymbols)
.then(definitions => {
if(definitions.length > 0){
//this one is called if I run the tests out of Visual Studio Code
} else{
//this one is called if I run the tests via npm rum test
}
});
等待vscode.commands.executeCommand('vscode.executeDefinitionProvider',document.uri,positionToSearchForSymbols)
。然后(定义=>{
如果(定义长度>0){
//如果我使用VisualStudio代码运行测试,则调用此函数
}否则{
//如果我通过npm-rum-test运行测试,就会调用这个函数
}
});
你知道我做错了什么吗?为什么npm运行测试
的行为与用VS代码运行测试不同
提前感谢你的帮助
David我被告知VS代码向语言提供商(在我的例子中是al语言扩展)发送了一条消息,并且问题必须在语言提供商的网站上。由于该问题与VS代码无关,我将结束此问题。一般来说:1)定义提供程序可以来自第三方。取决于第三方,您的测试失败或成功。(正如你在回答中所想)。需要注意的重要一点是:包含此第三方扩展(定义提供程序)的测试可能无法在使用其他定义提供程序设置的其他计算机上复制。也许可以考虑专门为您的测试创建您自己的模拟/存根定义提供者,以使其可复制。