combineLcovToRoot method
void
combineLcovToRoot({})
Implementation
void combineLcovToRoot({
required String workingDirectory,
bool isDeleteRootCoverageFirst = false,
}) {
final pathMergeLcovRoot = join(current, 'coverage', 'merge_lcov.info');
if (!exists(pathMergeLcovRoot)) {
touch(pathMergeLcovRoot, create: true);
} else if (isDeleteRootCoverageFirst) {
delete(pathMergeLcovRoot);
touch(pathMergeLcovRoot, create: true);
}
final pathLcov = find(
'lcov.info',
recursive: true,
types: [Find.file],
workingDirectory: workingDirectory,
).toList();
for (var path in pathLcov) {
final splitPathLcov = path.split(separator);
final newFileName = 'merge_${splitPathLcov.removeLast()}';
final newPathFileLcov = '${splitPathLcov.join(separator)}/$newFileName';
copy(path, newPathFileLcov, overwrite: true);
final pathReplace = newPathFileLcov
.replaceAll('$current/', '')
.replaceAll(RegExp(r'(\/)?coverage\/merge_lcov.info(\/)?'), '')
.replaceAll(RegExp(r'(\/)?coverage\/lcov.info(\/)?'), '');
replace(newPathFileLcov, RegExp(r'SF:lib\/'), 'SF:$pathReplace/lib/');
pathMergeLcovRoot.append(readFile(newPathFileLcov));
}
}