Описание второго уровня пропускается в отчете об использовании внутри него await.
У меня есть структура теста, в которой я асинхронно считываю файлы на нескольких уровнях в своем тесте и использую данные для проверки.
Это упрощенная версия моего кода, поэтому прошу прощения за это.Идея состоит в том, чтобы сделать несколько асинхронных вызовов для чтения файлов на нескольких уровнях в тесте.
const { expect } = require('chai');
const subList1 = [
{ title: 'subList1_title1', value: '1' },
{ title: 'subList1_title2', value: '2' },
{ title: 'subList1_title3', value: '3' },
];
const subList2 = [
{ title: 'subList2_title1', value: '1' },
{ title: 'subList2_title2', value: '2' },
{ title: 'subList2_title3', value: '3' },
];
const masterList = [
{
title: 'subList1',
value() {
return subList1;
},
},
{
title: 'subList2',
value() {
return subList2;
},
},
];
function getMasterList() {
return masterList;
}
describe('All Tests', async function () {
let testMasterList = [];
testMasterList = await getMasterList();
testMasterList.forEach(function (item) {
describe(item.title, async function () {
const list = await item.value();
list.forEach(function (element) {
describe(element.title, function () {
it('Value should be a string', function () {
expect(element.value).to.be.a('string');
});
});
});
});
});
});
setTimeout(function () {
run();
}, 1000);
Я использую флаг --delay с mocha для запуска теста.
Если я удаляю2-й await
, затем все описания печатаются в консоли.
Ожидаемое:
subList1
subList1_title1
✓ Value should be a string
subList1_title2
✓ Value should be a string
subList1_title3
✓ Value should be a string
subList2
subList2_title1
✓ Value should be a string
subList2_title2
✓ Value should be a string
subList2_title3
✓ Value should be a string
Фактическое значение:
subList1_title1
✓ Value should be a string
subList1_title2
✓ Value should be a string
subList1_title3
✓ Value should be a string
subList2_title1
✓ Value should be a string
subList2_title2
✓ Value should be a string
subList2_title3
✓ Value should be a string