在不使用命令行的情况下为Protractor / Jasmine测试编写日志文件

时间:2017-01-17 15:18:06

标签: logging automation jasmine protractor

我知道如果你要做protractor config.js > file.log这样的事情,所有的控制台输出都会被写入file.log。

有没有办法在测试中执行此操作/访问输出,以便我可以使用我的报告工具创建的动态路径?而且我也不会失去控制台输出。

编辑:

为了进一步阐述,我console.log输出感兴趣。我对所有来自似乎是量角器testLogger的东西感兴趣。例如,在套件执行结束时,我会看到: [13:19:37] I/launcher - 0 instance(s) of WebDriver still running [13:19:37] I/launcher - internet explorer #01-0 failed 4 test(s) [13:19:37] I/launcher - internet explorer #01-1 failed 1 test(s) [13:19:37] I/launcher - internet explorer #01-2 failed 1 test(s) [13:19:37] I/launcher - internet explorer #01-3 failed 1 test(s) [13:19:37] I/launcher - overall: 7 failed spec(s)

我希望除了其他控制台输出之外。

2 个答案:

答案 0 :(得分:0)

我建议的是,不是将任何必需的信息写入控制台并试图让记者阅读,我建议您从测试中实施记录以获得更好的控制。

而不是console.log() - 有类似logger().info("Testing Log4js")的内容,然后让您的记者继续操作。

如果您对此感兴趣,我会尝试使用Protractor进行log4j的js版本调用 - log4js,其工作正常。

如果您对此感兴趣,请访问implementation examples

答案 1 :(得分:0)

完整的代码示例供参考:

为Protractor框架设置log4js的步骤

步骤1:安装log4js npm模块

步骤2:创建一个帮助器js文件 - 它将创建可导入测试的记录器对象

'use strict';
var log4js = require('log4js');
var log4jsGen = {
    getLogger: function getLogger() {
        log4js.loadAppender('file');
        log4js.addAppender(log4js.appenders.file('./logs/ExecutionLog.log'), 'logs');
        var logger = log4js.getLogger('logs');
        return logger;
    }
};

module.exports = log4jsGen;

步骤3:导入帮助文件并调用getlogger()方法将日志语句添加到测试中

var log4jsGen = require("../Utilities/log4jsGen");
log4jsGen.getLogger().info("Testing Log4js");