大量のQUnitテストをJasmineに変換しています。QUnitでは、すべてのテストモジュールのテストの総数を上部に表示することに慣れています。例えば:
テストは157ミリ秒で完了しました。
528の528のテストに合格し、0は失敗しました。
テストの数は重要な情報だと思います。ただし、Jasmineのサンプルテストランナーは、テストの総数を表示しません。むしろ、次のようなものが得られます。
106仕様に合格
これらの各仕様には、任意の数の個別のテストを含めることができます。実行されたテストの総数を判別して、テストランナーに表示できるようにすることはできますか?オンラインとJasmineのドキュメントで情報を探しましたが、これまでのところ何も見つかりませんでした。
解決
@ggozadの返信に基づいて、コンソールに出力する次の解決策を考え出しました。それを改善する方法や、結果をJasmineのHTML出力にきれいに追加する方法についての提案を歓迎します。
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