测试VSCode扩展 - 如何验证装饰是否已设置

时间:2017-08-03 00:12:34

标签: visual-studio-code vscode-extensions

我有一个扩展,在某些行的末尾添加了文本装饰。我想编写一个测试来验证文本修饰是否已添加,并在测试中断言它们的值是正确的。

suite('Extension Tests', () => {
  test('Should work', async() => {
    const fixturePath = path.join(__dirname, '..', '..', 'test', 'fixtures');
    const uri = vscode.Uri.file(path.join(fixturePath, 'a.js'));
    const document = await vscode.workspace.openTextDocument(uri);
    await vscode.window.showTextDocument(document);
    window.activeTextEditor.getDecorations(); //???
  });
});

似乎编辑器中缺少getDecorations API。我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

从VSCode 1.37.1(2019-08-30)开始,答案为,无法使用decorations extensions API编写装​​饰自动化测试。

>

vscode源中(尤其是modelDecorations.test.ts)有自动测试修饰的方法,但是它们使用私有API。

Microsoft有一个使用装饰器的示例扩展decorator-sample,但没有测试。

与此相关的还有一些未解决的问题,尽管没有一个直接解决无法枚举现有装饰的问题:

  • 50346:缺少与装饰相关的API(主要是为了提高性能而进行的增量更新);关闭为:

  • 的副本
  • 585:提供用于高级/语义源突出显示的API

  • 50415:缺少用于知道扩展的装饰何时被破坏的API

  • 54938:公开装饰提供程序API

因此,我建议提出新的问题。