44
55import 'dart:async' ;
66import 'dart:collection' ;
7- import 'dart:convert' ;
8- import 'dart:io' ;
97
108import 'package:async/async.dart' hide Result;
119import 'package:collection/collection.dart' ;
12- import 'package:coverage/coverage.dart' ;
13- import 'package:path/path.dart' as p;
1410import 'package:pedantic/pedantic.dart' ;
1511import 'package:pool/pool.dart' ;
16-
1712import 'package:test_api/src/backend/group.dart' ; // ignore: implementation_imports
1813import 'package:test_api/src/backend/invoker.dart' ; // ignore: implementation_imports
1914import 'package:test_api/src/backend/live_test.dart' ; // ignore: implementation_imports
@@ -23,10 +18,11 @@ import 'package:test_api/src/backend/state.dart'; // ignore: implementation_impo
2318import 'package:test_api/src/backend/test.dart' ; // ignore: implementation_imports
2419import 'package:test_api/src/util/iterable_set.dart' ; // ignore: implementation_imports
2520
26- import 'runner_suite .dart' ;
21+ import 'coverage_stub.dart' if (dart.library.io) 'coverage .dart' ;
2722import 'live_suite.dart' ;
2823import 'live_suite_controller.dart' ;
2924import 'load_suite.dart' ;
25+ import 'runner_suite.dart' ;
3026
3127/// An [Engine] manages a run that encompasses multiple test suites.
3228///
@@ -288,7 +284,7 @@ class Engine {
288284 if (_closed) return ;
289285 await _runGroup (controller, controller.liveSuite.suite.group, []);
290286 controller.noMoreLiveTests ();
291- await _gatherCoverage ( controller);
287+ if (_coverage != null ) await gatherCoverage (_coverage, controller);
292288 loadResource.allowRelease (() => controller.close ());
293289 });
294290 }());
@@ -303,29 +299,6 @@ class Engine {
303299 return success;
304300 }
305301
306- Future <Null > _gatherCoverage (LiveSuiteController controller) async {
307- if (_coverage == null ) return ;
308-
309- final RunnerSuite suite = controller.liveSuite.suite;
310-
311- if (! suite.platform.runtime.isDartVM) return ;
312-
313- final String isolateId =
314- Uri .parse (suite.environment.observatoryUrl.fragment)
315- .queryParameters['isolateId' ];
316-
317- final cov = await collect (
318- suite.environment.observatoryUrl, false , false , false , Set (),
319- isolateIds: {isolateId});
320-
321- final outfile = File (p.join ('$_coverage ' , '${suite .path }.vm.json' ))
322- ..createSync (recursive: true );
323- final IOSink out = outfile.openWrite ();
324- out.write (json.encode (cov));
325- await out.flush ();
326- await out.close ();
327- }
328-
329302 /// Runs all the entries in [group] in sequence.
330303 ///
331304 /// [suiteController] is the controller fo the suite that contains [group] .
0 commit comments