Html-reporter добавляет к объекту hermione
объект htmlReporter
со своим API.
Имя | Тип | Описание |
---|---|---|
events | Object | Список событий, на которые можно подписаться. |
extraItems | Object | Дополнительные элементы, которые будут добавлены в бургер-меню отчета. |
imagesSaver | Object | Интерфейс для сохранения изображений в хранилище пользователя. |
reportsSaver | Object | Интерфейс для сохранения sqlite баз данных в хранилище пользователя. |
addExtraItem | Method | Добавляет дополнительный пункт в бургер-меню отчета. |
downloadDatabases | Method | Скачивает все базы данных из переданных файлов типа databaseUrls.json. |
mergeDatabases | Method | Объединяет все переданные базы данных и сохраняет итоговый отчет по заданному пути. |
getTestsTreeFromDatabase | Method | Возвращает дерево тестов из переданной базы данных. |
Список событий, на которые можно подписаться.
Смотрите подробнее в разделе «События отчета».
Дополнительные элементы, которые будут добавлены в бургер-меню отчета.
Для добавления элементов используйте метод addExtraItem.
Интерфейс для сохранения изображений в хранилище пользователя.
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;
}
}
});
};
Интерфейс для сохранения 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;
}
}
});
};
Добавляет дополнительный пункт в виде ссылки в бургер-меню html-отчета.
hermione.htmlReporter.addExtraItem(caption, url);
Все параметры являются обязательными.
Имя параметра | Тип | Описание |
---|---|---|
caption | String | Название пункта, который надо добавить в бургер-меню. |
url | String | URL, на который будет ссылаться добавляемый пункт меню. |
Скачивает все базы данных из переданных файлов databaseUrls.json
.
const dbPaths = await hermione.htmlReporter.downloadDatabases(
['.\databaseUrls.json'], { pluginConfig }
);
Функция принимает 2 аргумента — список путей до файлов databaseUrls.json
в виде массива строк и объект с ключом pluginConfig
, в значении которого хранится конфиг плагина.
Функция возвращает список путей к сохраненным базам данных.
Объединяет все переданные базы данных и сохраняет итоговый отчет по заданному пути.
await hermione.htmlReporter.mergeDatabases(srcDbPaths, path);
Имя параметра | Тип | Описание |
---|---|---|
srcDbPaths | String[] | Пути к базам данных. |
path | String | Путь, по которому будет сохранена итоговая база данных. |
Возвращает дерево тестов из переданной базы данных.
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;
}