2017-09-26 101 views
0

我想在可配置次数的测试失败后停止测试套件。 我的测试套件有不同的文件,包含摩卡测试。在可配置次数的测试失败后停止Mocha测试套件的执行

我想从用户那里获得输入信息,以了解他们想要停止执行完整测试套件的测试用例失败次数。 因此,如果用户给出5作为输入,我的测试套件应该在第五个测试用例失败后停止。

任何人都可以帮助我,如果搞清楚如何做到这一点?

回答

0

下面是一个尝试:

// mocha-plugin-fail-after.js 
const { Runner } = require('mocha'); 
const fail  = Runner.prototype.fail; 
const opts  = require('minimist')(process.argv); 
const failAfter = Number(opts['fail-after'] || 5); 

let failures = 0; 
Runner.prototype.fail = function() { 
    if (++failures > failAfter) { 
    console.log('\nToo many failures, exiting...'); 
    process.exit(failures); 
    } 
    return fail.apply(this, arguments); 
} 

要使用:

mocha -r mocha-plugin-fail-after --fail-after=5 test/**/*.js 
+0

嗨@robertklep, 我的摩卡测试套件已经在使用2名记者。那么我应该为上述做一个单独的npm模块,然后将它作为第三方记者加入我的测试套件中吗? – vedantshete

+0

@vedantshete这不是一个记者,只是一个插件(记者用'-R'加载,这个用'-r/- require'加载) – robertklep

+0

Runner.prototype.fail函数没有被调用。 我正在使用上面的插件。插件被调用,但失败函数不是当我使用-r运行摩卡时。 因此,所有的测试都在运行,并且忽略了Runner.prototype.fail。 我无法理解应该进行哪些修改? – vedantshete

相关问题