123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- (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');
- }
- }
- };
- }());
|