Как получить название теста Jest и статистику результатов - PullRequest
0 голосов
/ 29 февраля 2020

У меня есть несколько тестовых файлов Jest, и в каждом из них у меня есть что-то вроде этого:

const dName = 'A';
describe( dName, () => {
  beforeAll( () => {
    _.timings[dName] = Date.now();
  }
  afterAll( () => {
    _.timings[dName] = Date.now() - _.timings[dName];
  }

  const tName1 = 'B';
  test( tName1, () => {
    const startTime = Date.now();

    //do test here and set isPassed=true if test passed

    _.timings[tName1] = Date.now() - startTime;
    _.result[tName1].passed = isPassed;
  } 
}

afterAll( () => {
  generateReport( _ );
}

Каждый тестовый файл содержит несколько описаний, и в каждом описании есть несколько тестов.

Во-первых, есть ли лучший способ получить имя описания (или теста), а не то, что я сейчас делаю, определяя переменную (dName, tName1) и передавая ее через? В идеале я мог бы сделать что-то вроде:

test( 'B', () => {
  _.timings[ getTestName() ] = ... // where getTestName() would return B somehow.

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

Во-вторых, есть ли лучший способ получить результаты теста? Как и сейчас, мне нужно определить переменную (isPassed) и заполнить ее соответствующим образом в каждом тесте, чтобы в конце я смог записать эту информацию в объект _.results [testName]. Этот объект используется в самом конце в generateReport для создания файла, содержащего имена всех тестов и статус того, прошел ли каждый тест или нет.

...