挂了一个定制的摩卡记者

时间:2017-08-30 18:47:08

标签: javascript mocha

我是javascript和mocha的新手。我一直在研究如何创建第三方记者。我在https://github.com/mochajs/mocha/wiki/Third-party-reporters

看到了一些样本

我创建了一个满足我的需求并能够安装并使用它。但是,要求是不安装记者。它可以是不同的文件,也可以是同一个js文件的一部分。

有谁能告诉我如何用js文件挂钩记者?

这是我的测试js文件

const mochasteps = require('mocha-steps')
var Mocha = require('mocha');
var report = require('./report')
var mochainstance = new Mocha({reporter: report});
console.log(mochainstance._reporter)

before(() => console.log('before'))
after(() => console.log('after'))

describe('Array', () => {
    step('should start empty', done => {
    var arr = [];
    if (arr.length == 1) return done()
        done(new Error('array length not 0'))
  });
});

describe('Test', () => {
    step('some Test', done => {
    done(); 
  });
});

这是执行报告的测试report.js文件。

var mocha = require('mocha');
module.exports = report;

function report(runner) {
  mocha.reporters.Base.call(this, runner);

  runner.on('pass', function(test){
    console.log('[pass]%s', test.title);
  });

  runner.on('fail', function(test, err){
    console.log('[fail]%s(%s)', test.title, err.message);
  });

  runner.on('end', function(){
    process.exit(0);
  });
}

谢谢, r1j1m1n1

1 个答案:

答案 0 :(得分:0)

运行测试时,您需要将路径传递给自定义报告者。在您的示例中,假设test.js和report.js位于同一文件夹中,它将如下所示:

mocha test.js -R 'report.js'

这将使用report.js作为报告者运行test.js测试,而无需安装报告者。