7

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

今天有这样的事情吗?

4

4 回答 4

5

只是将jasmine-bail-fast拼凑在一起以获得这种行为。

npm install jasmine-bail-fast

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

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

希望将其合并到茉莉花核心,然后将其作为标志添加到茉莉花节点。

于 2013-08-15T23:29:03.457 回答
1

我能够对茉莉花进行猴子修补以应对快速失败。

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

于 2013-02-05T21:52:03.333 回答
0

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

于 2012-08-10T03:51:20.537 回答
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();
于 2017-10-27T15:17:28.343 回答