@@ -481,6 +481,40 @@ void main() {
481481 }
482482 });
483483
484+ testWithoutContext ('Coverage collector respects ignore whole file' , () async {
485+ Directory ? tempDir;
486+ try {
487+ tempDir = Directory .systemTemp.createTempSync ('flutter_coverage_collector_test.' );
488+ final File packagesFile = writeFooBarPackagesJson (tempDir);
489+ final Directory fooDir = Directory ('${tempDir .path }/foo/' );
490+ fooDir.createSync ();
491+ final File fooFile = File ('${fooDir .path }/foo.dart' );
492+ fooFile.writeAsStringSync ('hit\n nohit but ignored // coverage:ignore-file\n hit\n ' );
493+
494+ final String packagesPath = packagesFile.path;
495+ final CoverageCollector collector = CoverageCollector (
496+ libraryNames: < String > {'foo' , 'bar' },
497+ verbose: false ,
498+ packagesPath: packagesPath,
499+ resolver: await CoverageCollector .getResolver (packagesPath)
500+ );
501+ await collector.collectCoverage (
502+ TestTestDevice (),
503+ serviceOverride: createFakeVmServiceHostWithFooAndBar (libraryFilters: < String > ['package:foo/' , 'package:bar/' ]).vmService,
504+ );
505+
506+ final Map <String , HitMap > gottenHitmap = < String , HitMap > {};
507+ await collector.finalizeCoverage (formatter: (Map <String , HitMap > hitmap) {
508+ gottenHitmap.addAll (hitmap);
509+ return '' ;
510+ });
511+ expect (gottenHitmap.keys.toList ()..sort (), < String > ['package:bar/bar.dart' ]);
512+ expect (gottenHitmap['package:bar/bar.dart' ]! .lineHits, < int , int > {21 : 1 , 32 : 0 , 47 : 1 , 86 : 0 });
513+ } finally {
514+ tempDir? .deleteSync (recursive: true );
515+ }
516+ });
517+
484518 testWithoutContext ('Coverage collector records test timings when provided TestTimeRecorder' , () async {
485519 Directory ? tempDir;
486520 try {
0 commit comments