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