我正在用 javascript(VanillaJS)、jasmine 和量角器构建一个自动化框架。我选择了带有 log4js-protractor-appender 的 log4js 进行日志记录。当我执行跨浏览器测试时,我尝试保存日志(按浏览器类型)。我想在 safari 和 chrome 上运行规范,然后期望每个浏览器有 2 个单独的日志文件。
问:如何使用前面提到的技术创建两个单独的日志文件,其中一个仅包含 chrome 的日志,第二个文件仅包含 safari 浏览器的日志?
这是 conf.js 文件中的 log4js 代码
beforeLaunch : function(){
log4js.configure({
appenders: {
out: { type: 'console' },
result: { type: 'dateFile', filename: 'logs/result',"pattern":"-dd.log", alwaysIncludePattern:true},
error: { type: 'dateFile', filename: 'logs/error', "pattern":"-dd.log", alwaysIncludePattern:true},
default: { type: 'dateFile', filename: 'logs/default', "pattern":"-dd.log", alwaysIncludePattern:true}
},
categories: {
default: { appenders: ['out','default'], level: 'info' },
result: { appenders: ['result'], level: 'info' },
error: { appenders: ['error'], level: 'error' }
}
});
},
onPrepare : function() {
browser.logger = log4js.getLogger('protractorLog4js');
}
预期的结果是有 2 个文件:default_chrome.log & default_safari.log
// obtain browser name
browser.getBrowserName = function() {
return browser.getCapabilities().then((caps) => {
browser.browserName = caps.get('browserName');
}
)}
// resolve the promised so the browser name is obtained.
browser.getBrowserName();
log4js.configure({
appenders: {
out: { type: 'console' },
default: { type: 'dateFile', filename: 'logs/default_'+ browser.browserName, "pattern":".log", alwaysIncludePattern:true}
},
categories: {
default: { appenders: ['out','default'], level: 'info' }
}
});
我也试过这个选项:
var browName = () => {return browser.getCapabilities().then((caps) => {caps.get('browserName');});}