48 lines
1.6 KiB
JavaScript
48 lines
1.6 KiB
JavaScript
(function(){
|
|
//we want this at global scope so outside callers can find it. In a more realistic implementation we
|
|
//should probably put it in a namespace.
|
|
window.getCoverageByLine = function(silent) {
|
|
var key = null;
|
|
var lines = null;
|
|
var source = null;
|
|
//look for code coverage data
|
|
if (typeof window._$jscoverage === 'object') {
|
|
for (key in _$jscoverage) {}
|
|
lines = _$jscoverage[key];
|
|
}
|
|
|
|
if (!lines && !silent) {
|
|
console.log('code coverage data is NOT available');
|
|
}
|
|
|
|
return { 'key': key, 'lines': lines };
|
|
};
|
|
|
|
QUnit.done = function(t) {
|
|
var cvgInfo = getCoverageByLine(true);
|
|
if (!!cvgInfo.key) {
|
|
var testableLines = 0;
|
|
var testedLines = 0;
|
|
var untestableLines = 0;
|
|
for (lineIdx in cvgInfo.lines) {
|
|
var cvg = cvgInfo.lines[lineIdx];
|
|
if (typeof cvg === 'number') {
|
|
testableLines += 1;
|
|
if (cvg > 0) {
|
|
testedLines += 1;
|
|
}
|
|
} else {
|
|
untestableLines += 1;
|
|
}
|
|
}
|
|
var coverage = '' + Math.floor(100 * testedLines / testableLines) + '%';
|
|
|
|
var result = document.getElementById('qunit-testresult');
|
|
if (result != null) {
|
|
result.innerHTML = result.innerHTML + ' ' + coverage + ' test coverage of ' + cvgInfo.key;
|
|
} else {
|
|
console.log('can\'t find test-result element to update');
|
|
}
|
|
}
|
|
};
|
|
}()); |