Вход Регистрация
Файл: error-kitty/node_modules/mocha/lib/reporters/json-cov.js
Строк: 102
<?php
/**
 * Module dependencies.
 */

var Base = require('./base');

/**
 * Expose `JSONCov`.
 */

exports module.exports JSONCov;

/**
 * Initialize a new `JsCoverage` reporter.
 *
 * @param {Runner} runner
 * @param {Boolean} output
 * @api public
 */

function JSONCov(runneroutput) {
  var 
self this
    
output == arguments.length true output;

  
Base.call(thisrunner);

  var 
tests = []
    , 
failures = []
    , 
passes = [];

  
runner.on('test end', function(test){
    
tests.push(test);
  });

  
runner.on('pass', function(test){
    
passes.push(test);
  });

  
runner.on('fail', function(test){
    
failures.push(test);
  });

  
runner.on('end', function(){
    var 
cov = global._$jscoverage || {};
    var 
result self.cov map(cov);
    
result.stats self.stats;
    
result.tests tests.map(clean);
    
result.failures failures.map(clean);
    
result.passes passes.map(clean);
    if (!
output) return;
    
process.stdout.write(JSON.stringify(resultnull));
  });
}

/**
 * Map jscoverage data to a JSON structure
 * suitable for reporting.
 *
 * @param {Object} cov
 * @return {Object}
 * @api private
 */

function map(cov) {
  var 
ret = {
      
instrumentation'node-jscoverage'
    
sloc0
    
hits0
    
misses0
    
coverage0
    
files: []
  };

  for (var 
filename in cov) {
    var 
data coverage(filenamecov[filename]);
    
ret.files.push(data);
    
ret.hits += data.hits;
    
ret.misses += data.misses;
    
ret.sloc += data.sloc;
  }

  
ret.files.sort(function(ab) {
    return 
a.filename.localeCompare(b.filename);
  });

  if (
ret.sloc 0) {
    
ret.coverage = (ret.hits ret.sloc) * 100;
  }

  return 
ret;
};

/**
 * Map jscoverage data for a single source file
 * to a JSON structure suitable for reporting.
 *
 * @param {String} filename name of the source file
 * @param {Object} data jscoverage coverage data
 * @return {Object}
 * @api private
 */

function coverage(filenamedata) {
  var 
ret = {
    
filenamefilename,
    
coverage0,
    
hits0,
    
misses0,
    
sloc0,
    
source: {}
  };

  
data.source.forEach(function(linenum){
    
num++;

    if (
data[num] === 0) {
      
ret.misses++;
      
ret.sloc++;
    } else if (
data[num] !== undefined) {
      
ret.hits++;
      
ret.sloc++;
    }

    
ret.source[num] = {
        
sourceline
      
coveragedata[num] === undefined
        
''
        
data[num]
    };
  });

  
ret.coverage ret.hits ret.sloc 100;

  return 
ret;
}

/**
 * Return a plain-object representation of `test`
 * free of cyclic properties etc.
 *
 * @param {Object} test
 * @return {Object}
 * @api private
 */

function clean(test) {
  return {
      
titletest.title
    
fullTitletest.fullTitle()
    , 
durationtest.duration
  
}
}
?>
Онлайн: 1
Реклама