run function

Future<void> run(
  1. List<String> args, {
  2. required Logger logger,
  3. required TestWriter testWriter,
})

Starts up the script.

Implementation

Future<void> run(
  List<String> args, {
  required Logger logger,
  required TestWriter testWriter,
}) async {
  try {
    final arguments = ArgumentParser().parse(args);
    if (arguments is HelpArgs) {
      logger.stdout(arguments.message);
      return;
    } else if (arguments is MainArgs) {
      final testFileCount = await testWriter.generateMainTest(
        directory: arguments.directory,
        fileName: arguments.file,
        arguments: arguments.testArguments,
        templateOrPath: arguments.template,
        shard: arguments.shard,
      );
      if (testFileCount != 0) {
        logger.stdout(
          'Merged ${bold('$testFileCount')} test file(s) into '
          'one ${bold(arguments.file)}',
        );
      } else {
        logger.stdout(
          '${red('No test')} were found. '
          'Make sure the tests have postfix ${bold('_test.dart')}.',
        );
      }
    }
  } on ArgumentException catch (e) {
    logger.stderr(e.message);
  }
}