Skip to content

Latest commit

 

History

History
198 lines (140 loc) · 8.3 KB

html-reporter-api.md

File metadata and controls

198 lines (140 loc) · 8.3 KB

API плагина

Обзор

Html-reporter добавляет к объекту hermione объект htmlReporter со своим API.

Имя Тип Описание
events Object Список событий, на которые можно подписаться.
extraItems Object Дополнительные элементы, которые будут добавлены в бургер-меню отчета.
imagesSaver Object Интерфейс для сохранения изображений в хранилище пользователя.
reportsSaver Object Интерфейс для сохранения sqlite баз данных в хранилище пользователя.
addExtraItem Method Добавляет дополнительный пункт в бургер-меню отчета.
downloadDatabases Method Скачивает все базы данных из переданных файлов типа databaseUrls.json.
mergeDatabases Method Объединяет все переданные базы данных и сохраняет итоговый отчет по заданному пути.
getTestsTreeFromDatabase Method Возвращает дерево тестов из переданной базы данных.

events

Список событий, на которые можно подписаться.

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

extraItems

Дополнительные элементы, которые будут добавлены в бургер-меню отчета.

Для добавления элементов используйте метод addExtraItem.

imagesSaver

Интерфейс для сохранения изображений в хранилище пользователя.

Пример использования

const MyStorage = require('my-storage');
const myStorage = new MyStorage();

module.exports = (hermione, opts) => {
    hermione.on(hermione.events.INIT, async () => {
        hermione.htmlReporter.imagesSaver = {
            /**
            * Сохранить изображение в пользовательское хранилище.
            * Функция может быть как асинхронной, так и синхронной. 
            * Функция должна возвращать путь или URL к сохраненному изображению.
            * @property {String} localFilePath – путь к изображению на файловой системе
            * @param {Object} options
            * @param {String} options.destPath – путь к изображению в html-отчете
            * @param {String} options.reportDir - путь к папке html-отчета
            * @returns {String} путь или URL к изображению
            */
            saveImg: async (localFilePath, options) => {
                const { destPath, reportDir } = options;
                const imageUrl = await myStorage.save(localFilePath, destPath, reportDir);

                // ...

                return imageUrl;
            }
        }
    });
};

reportsSaver

Интерфейс для сохранения sqlite баз данных в хранилище пользователя.

Пример использования

const MyStorage = require('my-storage');
const myStorage = new MyStorage();

module.exports = (hermione, opts) => {
    hermione.on(hermione.events.INIT, async () => {
        hermione.htmlReporter.reportsSaver = {
            /**
            * Сохранить sqlite базу данных в пользовательское хранилище.
            * Функция может быть как асинхронной, так и синхронной. 
            * Функция должна возвращать путь или URL к сохраненной sqlite базе данных.
            * @property {String} localFilePath – путь к sqlite базе данных на файловой системе
            * @param {Object} options
            * @param {String} options.destPath – путь к sqlite базе данных в html-отчете
            * @param {String} options.reportDir - путь к папке html-отчета
            * @returns {String} путь или URL к сохраненной sqlite базе данных
            */
            saveReportData: async (localFilePath, options) => {
                const { destPath, reportDir } = options;
                const dbUrl = await myStorage.save(localFilePath, destPath, reportDir);

                // ...

                return dbUrl;
            }
        }
    });
};

addExtraItem

Добавляет дополнительный пункт в виде ссылки в бургер-меню html-отчета.

Пример вызова

hermione.htmlReporter.addExtraItem(caption, url);

Параметры вызова

Все параметры являются обязательными.

Имя параметра Тип Описание
caption String Название пункта, который надо добавить в бургер-меню.
url String URL, на который будет ссылаться добавляемый пункт меню.

downloadDatabases

Скачивает все базы данных из переданных файлов databaseUrls.json.

Пример вызова

const dbPaths = await hermione.htmlReporter.downloadDatabases(
    ['.\databaseUrls.json'], { pluginConfig }
);

Параметры вызова

Функция принимает 2 аргумента — список путей до файлов databaseUrls.json в виде массива строк и объект с ключом pluginConfig, в значении которого хранится конфиг плагина.

Функция возвращает список путей к сохраненным базам данных.

mergeDatabases

Объединяет все переданные базы данных и сохраняет итоговый отчет по заданному пути.

Пример вызова

await hermione.htmlReporter.mergeDatabases(srcDbPaths, path);

Параметры вызова

Имя параметра Тип Описание
srcDbPaths String[] Пути к базам данных.
path String Путь, по которому будет сохранена итоговая база данных.

getTestsTreeFromDatabase

Возвращает дерево тестов из переданной базы данных.

Пример вызова

const dbTree = hermione.htmlReporter.getTestsTreeFromDatabase(mergedDbPath);

Параметры вызова

Функция принимает один аргумент — путь к базе данных с результатом прогона тестов.

Пример использования

function getSuccessTestRunIds({ hermione, mergedDbPath }) {
    const dbTree = hermione.htmlReporter.getTestsTreeFromDatabase(mergedDbPath);

    const successTestRunIds = [];

    for (const browserId of dbTree.browsers.allIds) {
        const browser = dbTree.browsers.byId[browserId];
        const lastResultId = _.last(browser.resultIds);
        const lastResult = lastResultId && dbTree.results.byId[lastResultId];

        if (!lastResult || lastResult.status !== SUCCESS) {
            continue;
        }

        const testRunId = new URL(lastResult.suiteUrl).searchParams.get("testRunId");

        if (!testRunId) {
            continue;
        }

        successTestRunIds.push(testRunId);
    }

    return successTestRunIds;
}