Поэтому мне пришлось существенно переписать инструмент отчетности, который я использовал для отчетов HTML для тестов Protractor/Jasmine E2E. Сейчас я могу хорошо писать в файл все результаты теста для запуска одного тестового файла (например, test1.spec.js).Как узнать, когда протрактор/жасмин закончены? (Логика инструмента отчетности)
Моя проблема возникает, когда я запускаю несколько файлов за раз (например, ['./test1.spec.js', './test2.spec.js']). В идеале, что я хотел бы сделать, это сохранить всю информацию из обоих тестов в объект, который, скажем, fileData, и затем записать эту переменную в файл после завершения всех тестовых файлов.
Я пробовал писать в функции jasmineDone, но это происходит после завершения каждого тестового файла, так что он либо дублирует информацию, которую я получаю из отчета, либо перезаписывает/испортил стилизацию отчета.
this.jasmineDone = function() {
fileData += styles.closeReportTags;
fileData += styles.closeBodyHtmlTag;
fs.appendFileSync("C:/Reports/testing1.html", fileData);
}
Я также создал метод afterLaunch определен в моем файле транспортир конфигурации, и используется в файле инструмента отчетности как таковой:
this.afterLaunch = function (callback) {
fs.writeFile("C:/Reports/testing1.html", fileData);
}
Выше я попытался приложить все результаты тестирования в переменную fileData на каждом прогоне, а затем просто записать все обратно после ее завершения, но fileData, похоже, не передается должным образом методу afterLaunch (он ничего не пишет в файл, просто создает пустой html-файл).
Итак, мой вопрос: каким образом я могу сохранить счетчик или флаг, чтобы определить, есть ли больше тестовых файлов в очереди на транспортир/жасмин, чтобы выяснить, когда фактический тестовый прогон полный и в какой области я могу использовать это, чтобы затем написать мой файл.
Спасибо.
я на самом деле понял, что-то, что работал с моим текущим решением, но я все еще планирую глядя в свой путь! Оцените ответ. Это была огромная головная боль ха-ха. –
Не беспокойтесь. Да, это боль ... – Brine