Получить имя теста Jest внутри beforeEach () и afterEach () - PullRequest
0 голосов
/ 06 мая 2020

Я запускаю Jest и пытаюсь записать метку времени начала и окончания для каждого из моих тестов. Я пытаюсь вставить журнал с отметкой времени внутри блоков beforeEach() и afterEach(). Как мне записать имя моего теста Jest в блоке beforeEach() и afterEach()?

Кроме того, существует ли более глобальный способ записи имени теста и отметки времени до и после всех тестов без использования beforeEach() и afterEach()?

1 Ответ

1 голос
/ 07 мая 2020

Информация о выполняемом в данный момент тесте недоступна в beforeEach. Подобно Jasmine, объект набора доступен в Jest как this контекст в функции describe, можно исправить определения spe c для предоставления необходимых данных. Более тривиальным способом было бы определить пользовательскую функцию-оболочку для глобального it, которая перехватывает имя теста.

Пользовательский репортер - лучший способ сделать это. Интерфейс Reporter самодокументирован, необходимые данные: доступны в testResult.

Уже доступны измерения производительности:

module.exports = class TimeReporter {
  onTestResult(test, testResult, aggregatedResult) {
    for (let { title, duration } of testResult.testResults)
        console.log(`test '${title}': ${duration} ms`);
  }
}

Можно использовать как:

reporters: ['default', "<rootDir>/time-reporter.js"]

Как уже было отмечено, существуют beforeAll и afterAll, они выполняются один раз на describe тестовую группу.

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