Предлагает ли jasmine-node какой-либо вариант быстрого отказа?

Когда я запускаю набор тестов jasmine из командной строки, мне нужен какой-то вариант быстрого отказа, чтобы он останавливался при первой ошибке утверждения.

Существует ли что-то подобное сегодня?


person Toran Billups    schedule 19.07.2012    source источник


Ответы (4)


Я смог исправлять жасмин при быстрых сбоях.

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

person Brian Takita    schedule 05.02.2013

Просто собрал jasmine-bail-fast, чтобы получить такое поведение.

npm install jasmine-bail-fast

Затем перед вашей первой спецификацией:

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

Надеясь получить его объединить с ядром jasmine, а затем добавить в качестве флага к jasmine-node.

person hurrymaplelad    schedule 15.08.2013

Насколько я знаю, ответ "Нет". Мы в какой-то степени обходим это, разбивая тесты на отдельные файлы и запуская их один за другим, поэтому он останавливается, когда сталкивается с файлом с неудачным тестом.

person lambshaanxy    schedule 10.08.2012

Можно сделать вручную/искусственно через кастомный репортер. Кажется, они работают над этой функцией, но проблема все еще открыта. Сейчас это то, что я делаю в 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();
person cancerbero    schedule 27.10.2017