Skip to content
4 changes: 3 additions & 1 deletion lib/src/cli/cli.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'dart:async';
import 'dart:math';
import 'package:collection/collection.dart';
import 'package:glob/glob.dart';
import 'package:lcov_parser/lcov_parser.dart';
Expand All @@ -7,12 +8,13 @@ import 'package:meta/meta.dart';
import 'package:path/path.dart' as p;
import 'package:pubspec_parse/pubspec_parse.dart';
import 'package:universal_io/io.dart';
import 'package:very_good_cli/src/commands/test/templates/templates.dart';
import 'package:very_good_cli/src/cli/templates/templates.dart';
import 'package:very_good_test_runner/very_good_test_runner.dart';

part 'dart_cli.dart';
part 'flutter_cli.dart';
part 'git_cli.dart';
part 'test_cli_runner.dart';

const R Function<R>(
R Function(), {
Expand Down
37 changes: 37 additions & 0 deletions lib/src/cli/dart_cli.dart
Original file line number Diff line number Diff line change
Expand Up @@ -92,4 +92,41 @@ class Dart {

await Future.wait<void>(processes);
}

/// Run tests (`dart test`).
/// Returns a list of exit codes for each test process.
static Future<List<int>> test({
required Logger logger,
String cwd = '.',
bool recursive = false,
bool collectCoverage = false,
bool optimizePerformance = false,
Set<String> ignore = const {},
double? minCoverage,
String? excludeFromCoverage,
String? randomSeed,
bool? forceAnsi,
List<String>? arguments,
void Function(String)? stdout,
void Function(String)? stderr,
GeneratorBuilder buildGenerator = MasonGenerator.fromBundle,
}) async {
return TestCLIRunner.test(
logger: logger,
testType: TestRunType.dart,
cwd: cwd,
recursive: recursive,
collectCoverage: collectCoverage,
optimizePerformance: optimizePerformance,
ignore: ignore,
minCoverage: minCoverage,
excludeFromCoverage: excludeFromCoverage,
randomSeed: randomSeed,
forceAnsi: forceAnsi,
arguments: arguments,
stdout: stdout,
stderr: stderr,
buildGenerator: buildGenerator,
);
}
}
Loading