【问题标题】:How to log Protractor exception to log files?如何将量角器异常记录到日志文件?
【发布时间】:2020-05-07 08:47:26
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: logging protractor error-logging log4js-node


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-10-06
      • 2020-12-09
      • 2013-10-17
      • 2021-07-09
      • 1970-01-01
      • 2011-10-23
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多