Я пишу собственный репортер для Jasmine, но не могу заставить мою функцию JasmineDone правильно ждать, пока вызов функции создаст несколько журналов в ней, чтобы завершиться правильно, прежде чем завершить. Это происходит в onPrepare.
Эта та же самая функциональность работает в наших функциях afterAll () в наших тестовых файлах, но не в разделе репортера jasmineDone.
Я использую Protractor с Jasmine для тестирования приложения Angular. Менеджер обещаний отключен в конфигурации, поэтому мы в основном используем async / awaits для обработки наших асинхронных операций.
global.globalFuncs = require('../src/functions/globalFunctions');
await jasmine.getEnv().addReporter(
{
jasmineStarted: function (options) {
},
specDone: function (result) {
},
suiteStarted: function (result) {
},
suiteDone: function (result) {
},
jasmineDone: async function (result) {
if (suiteObj.totalFailed > 0) {
console.log('+ Creating Logs');
let logText = await globalFuncs.getLogText('performance');
console.log(logText);
console.log('- Logs Created');
return 'success';
} else {
return 'no failures';
}
}
}
файл глобальной функции
exports.getLogText = async (logType) => {
return await browser.manage().logs().get(logType);
}
Я вижу сообщение «+ Создание журналов» в журнале консоли непосредственно перед завершением теста, но больше ничего не печатается.
консольный результат