getPackagesToTest method
Implementation
(
Iterable<PackageToTest>? filesToTest,
ExitCode? exitCode,
) getPackagesToTest(
List<String> testDirs,
Map<String, DetermineFlutterOrDart> dirTools, {
required bool optimize,
}) {
logger.detail(
'${optimize ? '' : 'NOT '}Optimizing ${testDirs.length} test files',
);
if (optimize) {
final done = logger.progress('Optimizing test files');
final result = prepareOptimizedFilesFromDirs(testDirs, dirTools);
done.complete();
if (result.isEmpty) {
logger.err('No tests found');
return (null, ExitCode.unavailable);
}
return (result, null);
}
logger.warn('Running tests without optimization');
final dirsWithTests = <String>[];
final glob = Glob('**_test.dart');
for (final MapEntry(key: dir, value: _) in dirTools.entries) {
final result = glob.listFileSystemSync(fs, followLinks: false, root: dir);
if (result.any((e) => e is File)) {
dirsWithTests.add(dir);
}
}
final dirs = [
for (final dir in dirsWithTests)
if (dirTools[dir] case final tool?)
PackageToTest(
tool: tool,
packagePath: dir,
),
];
if (dirs.isEmpty) {
logger.err('No tests found');
return (null, ExitCode.unavailable);
}
return (dirs, null);
}