-1

目前,我能够使用log4jslog4js-protractor-appender-file npm 模块将测试执行语句写入日志文件。

但是,如果任何量角器测试用例失败,则该异常(如未找到元素、脚本超时、断言错误)不会写入日志文件。

您能否提供任何指针来实现这一目标?任何工作示例?

目前我在 configuration.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");
    },
};
4

1 回答 1

0

为自己建立一个定制的记者。您将可以访问 specDone 函数中的堆栈跟踪。该result对象将包含您想要的所有数据。结果将具有以下属性:

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

带有堆栈跟踪的属性将是failedExpectations. 如果有任何故障,堆栈跟踪将在该数组中。

有关详细信息,请参阅SpecResult的 jasmine 文档。

于 2020-05-11T20:16:33.210 回答