@@ -481,6 +481,40 @@ void main() {
481
481
}
482
482
});
483
483
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
+
484
518
testWithoutContext ('Coverage collector records test timings when provided TestTimeRecorder' , () async {
485
519
Directory ? tempDir;
486
520
try {
0 commit comments