Записать общее время или продолжительность тестового набора с помощью Jasmine Hook - PullRequest
1 голос
/ 19 февраля 2020

Я пытался получить 'totalTime' из ловушки jasmineDone или 'duration' из SuiteResult, как описано в [https://jasmine.github.io/api/edge/global.html#] , но они, похоже, недоступны. Был бы благодарен за любые указатели?

Я нашел ответ @DublinDev на это Жасмин получил текущий результат теста , что было очень полезно. Это позволяет мне получить длительность каждого теста с помощью ловушки specDone, которую я потенциально могу использовать, и добавить каждый результат, но мне любопытно узнать, что я делаю что-то не так.

Я использую следующий код из ссылка выше (2-я ссылка) и ожидает, что любой из console.logs выведет время, но ни один из них ничего не выводит

function dbReporter() {

  this.jasmineStarted = function (options) { };

  this.specStarted = function (result) { };

  this.specDone = async function (result) { };

  this.suiteStarted = function (result) { };

  this.suiteDone = function (result) {
    console.log('duration=', result.duration)
  }
  this.jasmineDone = async function (result) {
    console.log('totalTime=', result.totalTime)
  }
}

module.exports = dbReporter;

1 Ответ

0 голосов
/ 19 февраля 2020

Учитывая, что у вас уже есть последняя версия Jasmine, я бы порекомендовал просто создать свой собственный таймер, который начинается в ловушке jasmineStarted и заканчивается в ловушке JasmineDone.

onPrepare: () => {

    //Create a global variable to be used for the timer
    global.jasmineTimer = 0;

    jasmine.getEnv().addReporter({
        jasmineStarted: function (options) {
            jasmineTimer = Date.now();
            console.log(`Starting execution ${jasmineTimer}`)
        },
        jasmineDone: async function (result) {

            console.log(`Finished execution in ${(Date.now() - jasmineTimer) / 1000}s`)
        }
    })
}

Screenshot of output

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...