Когда я выполняю тест, ведь мне нужен конечный результат vscode.windows.terminal, тестирование дало мне ложный положительный результат. Мне нужно дождаться окончания операции терминала, чтобы выполнить утверждения.
Я использую класс с именем Stack, у которого есть файл pom. Мой тест начинается с выполнения чистой установки cd и mvn с использованием vscode.windows.terminal. Идея тестового утверждения заключается в проверке существования целевого файла.
const buildProgram = () => {
const terminal = vscode.window.createTerminal();
terminal.show();
terminal.sendText('cd ' + stackDirectory);
terminal.sendText('mvn clean install');
}
it("Stack Project build taget directory exists", function() {
const promise = Promise.all([buildProgram()])
.then(() => {
return fs.existsSync(stackDirectory + "/target");
});
expect(promise).to.eventually.equal(false);
});
Этот тест выполняется без проблем, но в конце целевой каталог не создается.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я нахожу возможное решение, заменяющее тест для этого:
it("Stack Project build taget directory exists", function() {
buildProgram();
return new Promise((resolve, reject) => setTimeout(function(){
// Assert here.
if (fs.existsSync(stackDirectory + "/target")){
resolve();
}
reject();
}, 5000));
}).timeout('7s');
Мне не очень нравится идея использования тайм-аута, но я не нахожу способа сказать, занят ли терминал.