如何获取一个异步JasmineDone函数以正确等待其中的函数调用?

时间:2019-01-10 11:35:47

标签: javascript async-await jasmine protractor fs

我正在为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);
}

在测试即将完成之前,我可以在控制台日志中看到“ +正在创建日志”消息,但是没有进一步打印。

console result

0 个答案:

没有答案