Показать общее количество тестов/ожиданий, выполненных Jasmine

Я конвертирую большой набор тестов QUnit в Jasmine. В QUnit я привык видеть общее количество тестов во всех тестовых модулях, отображаемое вверху. Например.:

Tests completed in 157 milliseconds.

528 tests of 528 passed, 0 failed.

Я считаю количество тестов важной информацией. Однако примеры запуска тестов Jasmine не отображают общее количество тестов. Скорее, вы получите что-то вроде:

Passing 106 specs

Каждая из этих спецификаций может содержать любое количество отдельных тестов. Можно ли определить общее количество запущенных тестов, чтобы я мог отобразить его в моем средстве запуска тестов? Я искал информацию в Интернете и в документах Jasmine, но пока ничего не смог найти.


Решение

Основываясь на ответе @ggozad, я придумал следующее решение, которое выводит на консоль.Предложения о том, как улучшить его или как аккуратно добавить результаты в HTML-вывод Jasmine, приветствуются.

var jasmineEnv = jasmine.getEnv();
var htmlReporter = new jasmine.HtmlReporter();
var reportRunnerResults = htmlReporter.reportRunnerResults;

htmlReporter.reportRunnerResults = function(runner) {
    reportRunnerResults(runner);

    var specs = runner.specs();
    var specResults;
    var assertionCount = {total: 0, passed: 0, failed: 0};

    for (var i = 0; i < specs.length; ++i) {
        if (this.specFilter(specs[i])) {
            specResults = specs[i].results();
            assertionCount.total += specResults.totalCount;
            assertionCount.passed += specResults.passedCount;
            assertionCount.failed += specResults.failedCount;
        }
    }

    if (console && console.log) {
        console.log('Total: ' + assertionCount.total);
        console.log('Passed: ' + assertionCount.passed);
        console.log('Failed: ' + assertionCount.failed);
    }
};

jasmineEnv.addReporter(htmlReporter);
jasmineEnv.specFilter = function(spec) {
    return htmlReporter.specFilter(spec);
};

window.onload = function() {
    jasmineEnv.execute();
};

Пример вывода консоли:

Total: 67
Passed: 67
Failed: 0 
5
задан slevithan 18 July 2012 в 17:04
поделиться