7

When I run a suite of jasmine tests from the command line I'd like some type of fail fast option so it stops at the first assertion error

Does anything like this exist today?

4

4 に答える 4

5

Just threw together jasmine-bail-fast to get this behavior.

npm install jasmine-bail-fast

Then before your first spec:

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

Hoping to get it merged to jasmine core then added as a flag to jasmine-node.

于 2013-08-15T23:29:03.457 に答える
1

I was able to monkey-patch jasmine for fast failures.

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

于 2013-02-05T21:52:03.333 に答える
0

As far as I'm aware, the answer is "No". We get around this to some extent by splitting the tests into separate files and running them one by one, so it stops once it hits a file with a failing test.

于 2012-08-10T03:51:20.537 に答える
0

You can do it manually / artificially through a custom reporter. They seem to be working on that feature but issue is still open. Right now this is what I'm doing in 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 に答える