我正在为Jasmine编写自定义报告程序,但无法获取JasmineDone函数来正确等待该函数调用在其中创建一些日志以正确完成,然后再完成。这是在onPrepare中发生的。
此功能完全相同,可在测试文件的afterAll()函数中使用,但不适用于该报告程序的jasmineDone部分。
我正在使用带有Jasmine的量角器来测试Angular应用程序。在配置中禁用了Promise Manager,因此我们主要使用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);
}
在测试即将完成之前,我可以在控制台日志中看到“ +正在创建日志”消息,但是没有进一步打印。