declareTest function
void
declareTest(
- String name,
- List<Component> components,
- FutureOr<void> body(), {
- Timeout? timeout,
- Object? skip,
- Object? tags,
- Map<String, dynamic> config = const {},
- List<File> configFiles = const [],
- ComposeEnvironment? environment,
})
Implementation
@isTest
void declareTest(
String name,
List<Component> components,
FutureOr<void> Function() body, {
dart_test.Timeout? timeout,
Object? skip,
Object? tags,
Map<String, dynamic> config = const {},
List<File> configFiles = const [],
ComposeEnvironment? environment,
}) {
final traceFrame = Trace.current(1).frames.first;
final testLocation = dart_test.TestLocation(
traceFrame.uri,
traceFrame.line ?? 0,
traceFrame.column ?? 0,
);
dart_test.group(name, () {
TestHost? host;
Map<String, dynamic>? environmentConfig;
if (environment case final environment?) {
late final ComposeEnvironmentInstance environmentInstance;
dart_test.setUpAll(() async {
environmentInstance = await environment.up();
environmentConfig = {'test': environmentInstance.buildConfiguration()};
});
dart_test.tearDownAll(() async {
await environmentInstance.down();
});
}
dart_test.setUp(() async {
final testHost = TestHost(components: components, testBody: body);
if (environmentConfig case final config?) {
testHost.configuration.addConfigMap(config);
}
for (final file in configFiles) {
testHost.configuration.addConfigFile(file);
}
testHost.configuration.addConfigMap(config);
await testHost.initialize();
host = testHost;
});
dart_test.test(
name,
() async => await host!
.findComponent(Find<_TestRunnerServiceInstance>(), null)
.runTest(body),
timeout: timeout,
skip: skip,
tags: tags,
location: testLocation,
);
dart_test.tearDown(() async {
if (host?.state == ServiceHostState.initialized) {
await host?.shutdown();
}
host = null;
});
}, location: testLocation);
}