У меня есть несколько тестовых файлов 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 для создания файла, содержащего имена всех тестов и статус того, прошел ли каждый тест или нет.