getCoverageEntity method

Future<CoverageEntity> getCoverageEntity(
  1. double minCoverage,
  2. String lcovFile
)

Implementation

Future<CoverageEntity> getCoverageEntity(
    double minCoverage, String lcovFile) async {
  var entity = CoverageEntity(minCoverage, lcovFile);
  final lines = await File(lcovFile).readAsLines();
  final coverage = lines.fold([0, 0], (List<int> data, line) {
    var testedLines = data[0];
    var totalLines = data[1];
    if (line.startsWith('DA')) {
      totalLines++;
      if (double.parse(line.split(',')[1]) > 0) {
        testedLines++;
      }
    }
    return [testedLines, totalLines];
  });

  final testedLines = coverage[0];
  final totalLines = coverage[1];

  entity.totalCoverage = (testedLines / totalLines) * 100;

  return entity;
}