Перейти к основному содержимому

Конфигурация

Примеры настройки

testplane.config.ts
export = {
// ...
plugins: {
'html-reporter/testplane': {
enabled: true,
path: 'html-report',
},
},
};

Справочник по параметрам конфигурации

ПараметрТипПо умолчаниюОписание
enabledbooleantrueВключить / отключить плагин.
pathstring"testplane-report"Путь к папке для сохранения файлов html-отчета.
saveErrorDetailsbooleanfalseСохранять / не сохранять подробности ошибок в json-файлах.
uiModestringnullРежим интерфейса по умолчанию: "old" для классического интерфейса, "new" для современного интерфейса.
defaultViewstring"all"Режим фильтрации тестов при отображении, который будет установлен по умолчанию.
diffModestring"3-up"Режим просмотра диффов, который будет установлен по умолчанию.
baseHoststringN/AЗаменяет оригинальный адрес хоста для просмотра в браузере.
errorPatternsErrorPattern[] | string[][]Паттерны ошибок с подсказками для улучшения UX отчета.
metaInfoBaseUrlsRecord<string, string>{}Базовые URL-адреса для формирования ссылок в разделе Meta на основе мета-информации о прогоне теста.
saveFormatstring"sqlite"ПАРАМЕТР УСТАРЕЛ. Позволяет задать формат, в котором будут сохранены результаты прогона тестов.
customGuiCustomGUI{ }ПАРАМЕТР УСТАРЕЛ. Используйте вместо него plugins. Описание собственных элементов управления для GUI-режима.
pluginsEnabledbooleanfalseВключить плагины для отчета.
pluginsPlugin[][]Список плагинов с их настройками.
customScriptsAnyFunction[][]Список функций, реализующих кастомные скрипты. Например, скрипты Яндекс.Метрики или Жучка.
yandexMetrikaYandexMetrikaсм. нижеЯндекс.Метрика.

enabled

Включает или отключает плагин.

path

Путь к папке для сохранения файлов html-отчета. По умолчанию файлы будут сохранены в папку testplane-report в текущей рабочей папке.

saveErrorDetails

Сохранять или не сохранять подробности ошибок в json-файлах (в папку error-details).

По умолчанию «не сохранять»: false.

Любой плагин testplane может добавить какие-либо подробности в объект ошибки при её возникновении. Эти подробности могут помочь пользователю в отладке проблем, которые возникли в тесте. Html-reporter сохраняет эти детали в папке error-details в файле с именем: <хэш от полного названия теста>-<браузер>_<номер ретрая>_<временная метка>.json.

Под стектрейсом html-reporter добавляет раздел Error details со ссылкой <title>, указывающей на json-файл. Пользователь может открыть этот файл либо в браузере, либо в любой IDE.

Пример как добавить подробности в объект ошибки из плагина:

const err = new Error("some error");

err.details = {
title: "description, will be used as url title",
data: {}, // или [], или String
};

throw err;

uiMode

Режим интерфейса по умолчанию: "old" для классического интерфейса, "new" для современного интерфейса. Влияет на редиректы между старым и новым интерфейсом.

По умолчанию редиректы не выполняются.

Доступны следующие значения: "old", "new".

Например, если установлено значение "new", то пользователи будут перенаправляться на новый интерфейс при попытке доступа к старому интерфейсу. Однако, если пользователь вручную нажмет кнопку "вернуться к старому интерфейсу", эта настройка будет сохранена, и он всегда будет использовать старый интерфейс, пока не переключится обратно.

defaultView

Режим фильтрации тестов при отображении, который будет установлен по умолчанию. Доступны следующие значения:

РежимОписание
allвсе тесты
passedтолько успешные тесты
failedтолько упавшие тесты
retriedтолько те тесты, в которых были ретраи (повторные запуски)
skippedтолько отключенные (заскипанные) тесты

По умолчанию: all, то есть если параметр не задан, то будут показываться все тесты.

diffMode

Режим просмотра диффов, который будет установлен по умолчанию. Доступны следующие значения:

РежимОписание
3-upвсе изображения (expected, actual, diff) в одном столбце, друг под другом
3‑up‑scaledвсе изображения (expected, actual, diff) в один ряд так, чтобы они помещались на экране
only-diffтолько дифф (diff)
switchэталонное изображение с возможностью переключаться на актуальное изображение по клику мыши
swipeактуальное изображение поверх эталонного, с разделителем открывающим эталонное изображение
onion-skinактуальное изображение поверх эталонного с возможностью менять прозрачность актуального изображения

По умолчанию: 3-up.

baseHost

Заменяет оригинальный адрес хоста для просмотра в браузере. По умолчанию оригинальный адрес хоста не изменяется.

errorPatterns

Паттерны ошибок используются:

  • чтобы показать более понятную информацию об ошибках, если они соответствуют паттернам, для которых есть подробное описание;
  • в режиме отображения Group by с выбранным ключом error.

Паттерны ошибок можно задавать как в виде объектов, так и в виде строк.

Чтобы задать паттерн ошибки в виде объекта, используйте следующий формат:

{
name: '<название ошибки>',
pattern: '<паттерн ошибки>',
hint: '<подсказка пользователю>'
}

где:

ПараметрТипОписание
namestringНазвание ошибки.
patternstring | RegExpРегулярное выражение или обычная строка, которой должна соответствовать ошибка.
hintstringНеобязательный параметр. Подсказка, что можно сделать с данной ошибкой: почему она возникла, как её исправить и т. п.

Если паттерн ошибки задан в виде строки, например: &lt;ошибка>, то эта строка автоматически рассматривается как объект вида:

{
name: '<ошибка>',
pattern: '<ошибка>'
}

Такой способ задания паттерна удобен для тех ошибок, у которых name и pattern полностью совпадают.

Когда один из шаблонов ошибок совпадает с сообщением об ошибке, то:

  • name шаблона ошибки будет отображаться как заголовок сообщения об ошибке, а исходное сообщение об ошибке будет скрыто под катом;
  • hint для ошибки будет отображаться после поля ошибки stack. Подсказка может быть задана в виде html-строки. Например, <div>some-useful-hint</div>.

В режиме Group by (группировать по) с выбранным ключом error тест будет связан с группой, если ошибка теста совпадает с шаблоном ошибок группы. Если тест не может быть связан с существующими группами, то будет создана новая группа.

metaInfoBaseUrls

Базовые URL-адреса для формирования ссылок в разделе Meta на основе мета-информации о прогоне теста.

Параметр задается в виде объекта:

{
'<опция-1>': 'значение опции 1',
'<опция-2>': 'значение опции 2',
// и т. д.
}

Например:

{
'file': 'base/path'
}

Когда значение любого ключа установлено на auto, базовый URL будет установлен на базовый хост, указанный в интерфейсе отчета, или останется неизменным, если базовый хост не указан.

Например, если у вас есть следующее значение metaInfoBaseUrls:

{
custom_url: "auto";
}

И вы установите поле meta.custom_url в https://example.com/some/path в ваших тестах, вы увидите в мете:

  • Ссылку на https://example.com/some/path, если базовый хост не установлен в интерфейсе пользователя
  • Ссылку на https://another-host.com/some/path, если базовый хост в интерфейсе пользователя установлен в https://another-host.com

saveFormat

Параметр устарел

Позволяет задать формат, в котором будут сохранены результаты прогона тестов.

Доступным осталось только одно значение, которое используется по умолчанию:

  • sqlite — сохранить результаты прогона тестов в базе данных формата SQLite.

customGui

Параметр устарел

warning

Вместо customGui рекомендуется использовать плагины для отчета.

Описание собственных элементов управления для GUI-режима.

Смотрите подробнее в разделе «Кастомизация GUI».

pluginsEnabled

Включить плагины для html-reporter.

plugins

Список плагинов с их настройками.

Смотрите подробнее в разделе «Плагины для отчета».

customScripts

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

Пример:

customScripts: [
function () {
console.info("some logs");
},
() => {
const div = document.createElement("div");
div.innerHTML = "hello";
document.body.prepend(div);
},
];

yandexMetrika

По умолчанию выполняется сбор анонимных сведений об использовании интерфейса отчета в целях анализа и улучшения UX. Собираются такие сведения, как скорость загрузки отчета, частота использования некоторых функций (например, сортировка тестов) и клики по элементам управления. Сведения о вашем проекте или содержимом тестов НЕ собираются ни при каких обстоятельствах.

Если вы не хотите делиться аналитикой с нами, вы можете отключить это любым из способов:

  • В конфиге
    module.exports = {
    plugins: {
    "html-reporter/testplane": {
    yandexMetrika: {
    enabled: false,
    },
    // другие настройки html-reporter...
    },
    // другие плагины Testplane...
    },
    // другие настройки Testplane...
    };
  • С помощью переменных окружения: html_reporter_yandex_metrika_enabled=false или просто NO_ANALYTICS=true
  • С помощью аргументов CLI: --html-reporter-yandex_metrika_enabled=false

Передача параметров через CLI

Все параметры плагина, которые можно определить в конфиге, можно также передать в виде опций командной строки или через переменные окружения во время запуска testplane. Используйте префикс --html-reporter- для опций командной строки и html_reporter_ — для переменных окружения.

Например, параметр настроек path можно передать следующими способами:

testplane path/to/mytest.js --html-reporter-path custom/dir
html_reporter_path=custom/dir testplane path/to/mytest.js

Хранение данных

Как уже было сказано выше, html-reporter сохраняет результаты прогона тестов в базу данных SQLite.

Почему мы используем SQLite? Потому что он:

  • бессерверный, легко подключаемый и не требует настроек
  • кросс-платформенный, запускается на любой операционной системе
  • одно-файловый, легко переиспользовать отчеты и делиться ими
  • быстрее, чем если хранить отчет на файловой системе
  • компактный и имеет полноценный SQL.

Файлы, который создаются во время выполнения тестов:

  • sqlite.db — база данных Sqlite с результатами прогона тестов
  • data.js — конфиг отчета
  • databaseUrls.json — абсолютные или относительные URL-адреса на базы данных SQLite (sqlite.db) и/или URL-адреса других файлов databaseUrls.json (см. команду merge-reports)