Я хочу прочитать удаленный источник данных (который возвращает обещание результата), а затем использовать этот результат для определения набора тестов.
const { suite, test, before } = intern.getInterface('tdd');
const testDef = (theTest) => {
const searchString = theTest.name;
return theTest.remote
.get('http://www.google.com?q=' + searchString )
.findDisplayedByXpath(`//input[@name='q' and @value='${searchString }']`)
.end();
};
(async () => {
const caseIds = await getCaseIds(); // a promise that resolves to an array of ids
suite('a suite of tests', function (theSuite) {
caseIds.forEach((id) => {
const testName = id;
test(testName , testDef);
});
});
})();
Проблема в том, что асинхронный IIFE завершается иВнутренний загрузчик продолжает запускать пустой набор тестов.В конце концов, обещание разрешается, и определение набора продолжается, но только после того, как исполнитель узла уже давно возвратился:
No unit test coverage for chrome 69.0.3497.81 on Windows NT
chrome 69.0.3497.81 on Windows NT: 0 passed, 0 failed
TOTAL: tested 1 platforms, 0 passed, 0 failed
Есть ли событие ("preRun") или перехват в intern.configure или способиспользовать плагин для ожидания вызова getCaseIds () до того, как загрузчик решит, что я определил тесты?