Рубрики
Без рубрики

Cypress – слияние нескольких отчетов Machawesome

В моем последнем посте я описал, как настроить отчеты о мохаусовых тестах. Однако я тоже … Tagged с помощью React, JavaScript, тестирования, кипариса.

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

Монтаж

Для этого вам понадобятся новые зависимости NPM. Это пакет Mochawesome-Merge, который вы можете загрузить, выполнив следующую команду CLI:

npm install mochawesome-merge --save-dev

Эта команда займет несколько выходов JSON и создаст один, содержащий все. Я знаю, что вы можете захотеть отчет HTML, но сначала нам нужно создать JSON One, чтобы генерировать HTML из него.

Запуск тестов

Давайте первым запустим тесты. Поскольку Mochawesome генерирует отдельный отчет для каждого набора тестов, нам нужно будет отключить перезапись в вариантах отчета для Cypress. Кроме того, нам нужно включить только формат JSON, потому что мы будем работать с этим.

// cypress.json
{
  "reporter": "mochawesome",
  "reporterOptions": {
    "charts": true,
    "overwrite": false,
    "html": false,
    "json": true,
    "reportDir": "cypress/report/mochawesome-report"
  }
}

Мы можем сделать все это с помощью конфигурации выше. Кроме того, он сохранит отчеты в папке Cypress/Report/Mochawesome-Report из-за свойства ReportDir. После его запуска мы получим такие файлы, как mochawesome.json, mochawesome_001.json и т. Д., Один для каждого набора для тестирования, который у нас есть.

Объединение отчетов

Теперь, когда мы создали отчеты для всех люксов, мы можем объединить их в одиночку. Мы можем сделать это, выполнив в CLI после команды.

mochawesome-merge cypress/report/mochawesome-report/*.json > cypress/report/output.json

Команда Machawesome-Merge из пакета NPM, поэтому вам придется добавить его в сценарии NPM или установить его глобально. Я рекомендую первый вариант. В качестве первого параметра команды мы даем местоположение всех сгенерированных отчетов, в этом случае Cypress/report/mochawesome-report/*. JSON. Во -вторых, где это сохранить. В этом случае это файл output.json в папке Cypress/Report. Входные файлы и выходной файл не должны находиться в том же месте, в противном случае, генерирование шага не удастся.

Генерируя HTML

Как только у нас появится наш отчет JSON, содержащий все результаты, мы можем преобразовать его в HTML. Это мы можем сделать, выполнив другую команду CLI.

marge cypress/report/output.json --reportDir ./ --inline

Мардж не опечатка; Это фактическая команда, исходящая от генератора Mockawesome Report. Первый параметр – результаты файла json. Вторым является местоположение, где его выводить относительно файла результатов. Последний параметр, который я добавил, встроен. Это означает добавление всех активов, CSS и JS, встроенных в HTML -файл. Причина этого в том, что мне лично было трудно контролировать значения URL для активов. Просто добавление их встроенных было намного проще.

Обрабатывать старые файлы и перезаписать

Чтобы эта настройка работала, вам необходимо установить флаг перезапись FALSE. Тем не менее, побочный эффект означает, что при следующем запуске он просто сохранит старые файлы отчетов и генерирует новые рядом с ним. Это не то, что мы хотим. Перед каждым пробежком мы хотели бы удалить старые. Я попробовал разные параметры, но лучшим, что я нашел, это создание пользовательского скрипта Nodejs и запуск его перед тестовым запуска. Следующий код может быть использован для него.

// deleteReports.js
const fs = require("fs");
fs.rmdirSync("./cypress/reports", {recursive: true});

Работа в виде сценариев NPM

Обычно вы хотите запустить все эти шаги через задачи сценария Package.json. У вас может быть одна задача для каждого шага, а затем отделить задачу, выполняя их все по порядку. Таким образом, вы можете назвать задачи так, как вы хотите, и не повторять все аргументы каждый раз.

Заворачивать

Есть несколько вещей, которые нужно быть осторожным при добавлении отчетов Machawesome. Таким образом, он генерирует отдельный отчет для каждого набора и перезаписывает старые, если он установлен. Но я надеюсь, что с этим руководством у вас достаточно информации о том, как правильно настроить процесс.

Код для этого можно найти в моем GitHub Cypress Setup Repository Анкет

Оригинал: “https://dev.to/hi_iam_chris/cypress-merging-multiple-mochawesome-reports-1855”