Я конвертирую большой набор тестов 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