茉莉花节点是否提供任何类型的“快速失败”选项?

时间:2012-07-19 14:17:25

标签: javascript unit-testing jasmine

当我从命令行运行一套茉莉花测试时,我想要某种类型的失败快速选项,所以它会在第一个断言错误时停止

今天有这样的事吗?

4 个答案:

答案 0 :(得分:5)

只是将jasmine-bail-fast放在一起以获得此行为。

npm install jasmine-bail-fast

然后在你的第一个规范之前:

require('jasmine-bail-fast');
jasmine.getEnv().bailFast();

希望得到它merged to jasmine core然后作为标志添加到jasmine-node。

答案 1 :(得分:1)

我能够快速失败地修补茉莉花。

https://gist.github.com/btakita/4718081

答案 2 :(得分:0)

据我所知,答案是“不”。我们在某种程度上通过将测试分成单独的文件并逐个运行来解决这个问题,因此一旦它遇到测试失败的文件就会停止。

答案 3 :(得分:0)

您可以通过自定义记者手动/人工完成。他们似乎正在研究这个功能,但问题仍然存在。现在这就是我在jasmine-node中所做的事情:

function installExitOnFail(runner)
{
    var SpecReporter = require('jasmine-spec-reporter')
    var exitOnFailReporter = new SpecReporter({displayStacktrace: true});
    var specDone = exitOnFailReporter.specDone
    exitOnFailReporter.specDone = function(result)
    {
        if(result.status === 'failed')
        {
            console.log(outpcolors.red('\nFailed test: ' + result.fullName +
                '\nReason: '+result.failedExpectations[0].message) +
                '\n' + result.failedExpectations[0].stackut);
            process.exit(1);
        }
        else
        {
            specDone.apply(exitOnFailReporter, arguments)
        }
    };
    runner.addReporter(exitOnFailReporter);
}

var jasmineRunner = new require('jasmine')();
installExitOnFail(jasmineRunner);
jasmine.DEFAULT_TIMEOUT_INTERVAL = 99999999;
jasmineRunner.specFiles = [your specs files....];
jasmineRunner.execute();