run method
Runs this command.
The return value is wrapped in a Future if necessary and returned by
CommandRunner.runCommand.
Implementation
@override
FutureOr<int> run() async {
exitIfNotValidDartPackage();
final config = await RocketConfig.fromPackageRoot(getPackageRoot());
_reportGenerator = ReportGenerator(getPackageRoot());
final bool shouldShardTests = argResults?['faster'] ?? false;
final minCoverageOption = argResults?['min-coverage'] as String?;
final failOnDrop = argResults?['fail-on-drop'] as bool? ?? false;
if (argResults?.wasParsed('report') ?? false) {
print(
'ℹ️ Note: The --report flag is deprecated; reports are now generated automatically on every run.',
);
}
final double? cliMinCoverage =
minCoverageOption != null ? double.tryParse(minCoverageOption) : null;
final double? minCoverage = cliMinCoverage ?? config.minCoverage;
// Passing --min-coverage or --fail-on-drop or having config.minCoverage implies coverage collection
runCoverage =
(argResults?['coverage'] ?? false) || minCoverage != null || failOnDrop;
buildReport = argResults?['report'] ?? true;
if (shouldShardTests) {
final testShards = await _shardTests(3);
await _runShards(testShards);
} else {
await generateTestBundle(packageRoot: getPackageRoot());
return await _runTestBundle(
minCoverage: minCoverage,
failOnDrop: failOnDrop,
);
}
return 0;
}