Как записать исключение Protractor в файлы журнала? - PullRequest
0 голосов
/ 07 мая 2020

В настоящее время я могу записывать операторы выполнения теста в файлы журнала, используя модули log4 js и log4 js -protractor-appender-file npm.

Однако, если какой-либо тестовый пример Protractor терпит неудачу, это исключение (например, элемент не найден, время ожидания сценария, ошибки утверждения) не записывается в файл журнала.

Не могли бы вы дать какой-нибудь указатель для этого? Любой рабочий пример образца?

В настоящее время у меня есть следующие конфигурации регистратора в конфигурации . js:

var Jasmine2HtmlReporter = require("protractor-jasmine2-html-reporter");
var log4js = require("log4js");
var fs = require("fs-extra");

exports.config = {
    beforeLaunch: function () {
        fs.emptyDirSync("logs");

        log4js.configure({
            appenders: {
                files: {
                    type: "log4js-protractor-appender-file",
                    filename: "./logs/execution_log.log",
                },
            },
            categories: {
                default: { appenders: ["files"], level: "trace" },
            },
        });
    },

    onPrepare: function () {
        jasmine.getEnv().addReporter(
            new Jasmine2HtmlReporter({
                savePath: "output/screenshots",
            })
        );

        logger = log4js.getLogger("logger");
    },
};

1 Ответ

0 голосов
/ 11 мая 2020

Создайте себе настраиваемого репортера . У вас будет доступ к трассировке стека в функции specDone. Объект result будет содержать все нужные вам данные. Результат будет иметь следующие свойства:

{
  id: '',
  description: '',
  fullName: '',
  failedExpectations: [],
  passedExpectations: [],
  deprecationWarnings: [],
  pendingReason: '',
  status: '',
  duration: 1
}

Свойство с трассировкой стека будет failedExpectations. Если есть какие-либо сбои, трассировки стека будут в этом массиве.

Подробнее см. В документации jasmine SpecResult .

...