testBuilders function
Future<TestBuilderResult>
testBuilders(
- Iterable<
Builder> builders, - Map<
String, Object> sourceAssets, { - Iterable<
PostProcessBuilder> postProcessBuilders = const [], - Set<
String> ? generateFor, - bool isInput(
- String assetId
- String? rootPackage,
- Map<
String, Object> ? outputs, - void onLog(
- LogRecord log
- void reportUnusedAssetsForInput(
- AssetId,
- Iterable<
AssetId>
- PackageConfig? packageConfig,
- Resolvers? resolvers,
- Set<
Builder> optionalBuilders = const {}, - Set<
Builder> visibleOutputBuilders = const {}, - Set<
PostProcessBuilder> visibleOutputPostProcessBuilders = const {}, - Set<
Builder> addsToLibraryBuilders = const {}, - Map<
Builder, List< appliesBuilders = const {},String> > - bool testingBuilderConfig = true,
- TestReaderWriter? readerWriter,
- bool verbose = false,
- bool flattenOutput = false,
Runs builders and postProcessBuilders in a test environment.
Calls testBuilderFactories with factories that each return a member of
builders and postProcessBuilders, see that method for details.
By default builders will be configured with a test-oriented builder config
that causes builders to run for all files. To instead use the default
build_runner config pass testingBuilderConfig false. To read
build.yaml files passed in sourceAssets, use testBuilderFactories
directly.
To access the outputs via testing.readString using the same
AssetIds as returned by the outputs of this method,
set flattenOutput to true. See TestReaderWriter for details.
Implementation
Future<TestBuilderResult> testBuilders(
Iterable<Builder> builders,
Map<String, /*String|List<int>*/ Object> sourceAssets, {
Iterable<PostProcessBuilder> postProcessBuilders = const [],
Set<String>? generateFor,
bool Function(String assetId)? isInput,
String? rootPackage,
Map<String, /*String|List<int>|Matcher<List<int>>*/ Object>? outputs,
void Function(LogRecord log)? onLog,
void Function(AssetId, Iterable<AssetId>)? reportUnusedAssetsForInput,
PackageConfig? packageConfig,
Resolvers? resolvers,
Set<Builder> optionalBuilders = const {},
Set<Builder> visibleOutputBuilders = const {},
Set<PostProcessBuilder> visibleOutputPostProcessBuilders = const {},
Set<Builder> addsToLibraryBuilders = const {},
Map<Builder, List<String>> appliesBuilders = const {},
bool testingBuilderConfig = true,
TestReaderWriter? readerWriter,
bool verbose = false,
bool flattenOutput = false,
}) {
final builderFactories = <BuilderFactory>[];
final optionalBuilderFactories = Set<BuilderFactory>.identity();
final visibleOutputBuilderFactories = Set<BuilderFactory>.identity();
final addsToLibraryBuilderFactories = Set<BuilderFactory>.identity();
final appliesBuildersToFactories = <BuilderFactory, List<String>>{};
for (final builder in builders) {
Builder builderFactory(_) => builder;
builderFactories.add(builderFactory);
if (optionalBuilders.contains(builder)) {
optionalBuilderFactories.add(builderFactory);
}
if (visibleOutputBuilders.contains(builder)) {
visibleOutputBuilderFactories.add(builderFactory);
}
if (addsToLibraryBuilders.contains(builder)) {
addsToLibraryBuilderFactories.add(builderFactory);
}
if (appliesBuilders.containsKey(builder)) {
appliesBuildersToFactories[builderFactory] = appliesBuilders[builder]!;
}
}
final postProcessBuilderFactories = <PostProcessBuilderFactory>[];
final visibleOutputPostProcessBuilderFactories =
Set<PostProcessBuilderFactory>.identity();
for (final postProcessBuilder in postProcessBuilders) {
PostProcessBuilder factory(_) => postProcessBuilder;
postProcessBuilderFactories.add(factory);
if (visibleOutputPostProcessBuilders.contains(postProcessBuilder)) {
visibleOutputPostProcessBuilderFactories.add(factory);
}
}
return testBuilderFactories(
builderFactories,
sourceAssets,
postProcessBuilderFactories: postProcessBuilderFactories,
generateFor: generateFor,
isInput: isInput,
rootPackage: rootPackage,
outputs: outputs,
onLog: onLog,
reportUnusedAssetsForInput: reportUnusedAssetsForInput,
packageConfig: packageConfig,
resolvers: resolvers,
optionalBuilderFactories: optionalBuilderFactories,
visibleOutputBuilderFactories: visibleOutputBuilderFactories,
visibleOutputPostProcessBuilderFactories:
visibleOutputPostProcessBuilderFactories,
addsToLibraryBuilderFactories: addsToLibraryBuilderFactories,
appliesBuilders: appliesBuildersToFactories,
testingBuilderConfig: testingBuilderConfig,
readerWriter: readerWriter,
verbose: verbose,
flattenOutput: flattenOutput,
);
}