diff --git a/pkgs/test_core/lib/src/runner/coverage.dart b/pkgs/test_core/lib/src/runner/coverage.dart index 68f48c984..0eeb64939 100644 --- a/pkgs/test_core/lib/src/runner/coverage.dart +++ b/pkgs/test_core/lib/src/runner/coverage.dart @@ -12,7 +12,7 @@ import '../util/package_config.dart'; import 'live_suite_controller.dart'; /// Collects coverage and outputs to the [coveragePath] path. -Future> writeCoverage( +Future writeCoverage( String? coveragePath, LiveSuiteController controller, ) async { @@ -35,7 +35,7 @@ Future> writeCoverage( Future writeCoverageLcov( String coverageLcov, - Map allCoverageData, + Coverage allCoverageData, ) async { final resolver = await Resolver.create( packagePath: (await currentPackage).root.toFilePath(), @@ -51,3 +51,9 @@ Future writeCoverageLcov( await out.flush(); await out.close(); } + +typedef Coverage = Map; + +extension Merge on Coverage { + void merge(Coverage other) => FileHitMaps(this).merge(other); +} diff --git a/pkgs/test_core/lib/src/runner/coverage_stub.dart b/pkgs/test_core/lib/src/runner/coverage_stub.dart index 2cedce919..e7d0bba4e 100644 --- a/pkgs/test_core/lib/src/runner/coverage_stub.dart +++ b/pkgs/test_core/lib/src/runner/coverage_stub.dart @@ -2,11 +2,9 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -import 'package:coverage/coverage.dart'; - import 'live_suite_controller.dart'; -Future> writeCoverage( +Future writeCoverage( String? coveragePath, LiveSuiteController controller, ) => @@ -14,10 +12,16 @@ Future> writeCoverage( 'Coverage is only supported through the test runner.', ); -Future writeCoverageLcov( - String coverageLcov, - Map allCoverageData, -) => +Future writeCoverageLcov(String coverageLcov, Coverage allCoverageData) => throw UnsupportedError( 'Coverage is only supported through the test runner.', ); + +typedef Coverage = Map; + +extension Merge on Coverage { + void merge(Coverage other) => + throw UnsupportedError( + 'Coverage is only supported through the test runner.', + ); +} diff --git a/pkgs/test_core/lib/src/runner/engine.dart b/pkgs/test_core/lib/src/runner/engine.dart index 5d96369f4..be4194c0d 100644 --- a/pkgs/test_core/lib/src/runner/engine.dart +++ b/pkgs/test_core/lib/src/runner/engine.dart @@ -7,7 +7,6 @@ import 'dart:math'; import 'package:async/async.dart' hide Result; import 'package:collection/collection.dart'; -import 'package:coverage/coverage.dart'; import 'package:pool/pool.dart'; import 'package:test_api/src/backend/group.dart'; // ignore: implementation_imports import 'package:test_api/src/backend/invoker.dart'; // ignore: implementation_imports @@ -68,7 +67,7 @@ class Engine { final String? _coverageLcov; /// The merged coverage data from all tests. - final Map _allCoverageData = {}; + final Coverage _allCoverageData = {}; /// The seed used to generate randomness for test case shuffling. ///