繁体   English   中英

挂钩自定义摩卡记者

[英]Hooking a custom mocha reporter

我是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

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

mocha test.js -R 'report.js'

这将以Report.js作为报告程序运行test.js测试,而无需安装报告程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM