首页 > 解决方案 > 想要为量角器中运行的每个测试用例创建新的日志文件

问题描述

我正在使用一个使用量角器和 javascript 的自动化框架。我们正在使用 winston 进行日志记录。但是使用我的配置,我只能创建一个不断附加的 .log 文件。

var winston = require('winston');


winston.remove(winston.transports.Console);
winston.add(winston.transports.Console, { timestamp: true });
winston.add(winston.transports.File, { filename: 'test-basic.log' });
module.exports = winston;

我想要的是每个单独的测试用例的 .log 文件,例如 testcase1.log、testcase2.log,并且每次都使用日期时间作为附加程序新创建。有没有办法我可以做到这一点?

标签: javascriptprotractorwinstonlog4js-node

解决方案


一种选择是在您的配置中创建您自己的茉莉花记者。一个新的 winston 文件将在每个测试开始时声明并在结束时完成。

jasmine.getEnv().addReporter({
    jasmineStarted: function (options) {
       console.log(`jas start: ${options}`);
    },
    suiteStarted: function (options) {
       console.log(`suite start: ${options}`);
       //start your log here.
    },
    specStarted: function (options) {
       console.log(`spec start: ${options}`);
    },
    specDone: function (result) {
       console.log(`spec done: ${result}`);
    },
    suiteDone: function (result) {
    },
    jasmineDone: async function (result) {

    }
  }

挂钩顺序

--- beforeLaunch           
    --- onPrepare          
      --- jasmineStarted   (set in jasmine reporter)
        --- beforeAll
         --- suiteStarted  (set in jasmine reporter)
          --- specStarted  (set in jasmine reporter)
           --- beforeEach  
           +++ afterEach   
          +++ specDone     (set in jasmine reporter)
         +++ suiteDone     (set in jasmine reporter)
        +++ afterAll
      +++ jasmineDone      (set in jasmine reporter)
    +++ onComplete         
+++ afterLaunch

推荐阅读