目前,我能够使用log4js和log4js-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");
},
};
为自己建立一个custom reporter。您将可以在specDone函数中访问stacktrace。 result
对象将包含所需的所有数据。结果将具有以下属性:
{
id: '',
description: '',
fullName: '',
failedExpectations: [],
passedExpectations: [],
deprecationWarnings: [],
pendingReason: '',
status: '',
duration: 1
}
具有堆栈跟踪的属性将为failedExpectations
。如果有任何失败,则堆栈跟踪将在该数组中。
有关更多详细信息,请参阅SpecResult的茉莉花文档。