Для теста пользовательского интерфейса расширения vscode я хочу получить значения QuickOpen или Info / ErrorMessages, чтобы утверждать, что отображаются правильные значения.
QuickOpen
Я нашел два способа управления QuickOpen из теста. У них обоих есть недостатки:
- Введите точный пункт. Проблема здесь заключается в «злоупотреблении» буфером обмена, но я не нашел другого способа сделать это.
async function selectQuickOpenItem(item: string) {
await vscode.commands.executeCommand('workbench.action.focusQuickOpen');
await vscode.env.clipboard.writeText(item);
await vscode.commands.executeCommand('editor.action.clipboardPasteAction');
await vscode.commands.executeCommand('workbench.action.acceptSelectedQuickOpenItem');
}
«Слепо» перейти к предмету:
await vscode.commands.executeCommand('workbench.action.quickOpenSelectNext')
await vscode.commands.executeCommand('workbench.action.acceptSelectedQuickOpenItem')
Есть ли лучший способ сделать это? Есть ли способ получить отображаемые значения?
Error / InfoMessages
Единственный способ проверить значение ошибки, которая "прервет" команду, - это вернутьPromise<any>
из моей командной функции, которая будет отображать ErrorMessage и reject
, если произойдет ошибка. Я не могу проверить, действительно ли отображается ErrorMessage, но я могу проверить значение сообщения об ошибке в блоке или функции catch
.