Added a tool to find uncovered files (#529) #2088
                
     Closed
            
            
          
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
Contribution guidelines:
dart format.Note that many Dart repos have a weekly cadence for reviewing PRs - please allow for some latency before initial review feedback.
Overview
This PR adds support for a new --include-uncovered flag in format_coverage.dart, allowing uncovered Dart files (i.e., those with no test coverage) to be included in the LCOV output. Solving the issue (#529)
This is what I did:
format_coverage.dartto parse--include-uncoveredflag.formatter.dartto pass the logic and format the LCOV to include files that are not covered by coverage.Key changes in
formatter.dart:import 'dart:io';import 'package:yaml/yaml.dart';required to scan all files in the directory and compare it with the covered files.formatLcovandprettyprint:bool Function(String path)? includeUncovered,_findAllDartFiles: to scan all files in the directory.getPackageName: to get package.toPackageUri: to convert the file paths into package uri for checking if the file is included or not.Testing:
CLI cmd:
dart run coverage:format_coverage --lcov --in=coverage --out=[lcov.info](http://lcov.info/) --report-on=lib --include-uncoveredexample:
Before implementation:
as utils.dart didn't had any coresponding tests, it was not included in the LCOV.
After implementation:
utils.dart was included in the LCOV with 0 lines hit.
Conclusion:
--include-uncoveredis successfully working as expected.Feedback:
Please let me know if any changes or refinements are needed.
Thank you!