runPlan method
Future<Map<String, EnsembleSingleTestResult> >
runPlan(
- EnsembleTestExecutionPlan plan,
- WidgetTester tester
Runs every test in plan and returns results keyed by test id.
Implementation
Future<Map<String, EnsembleSingleTestResult>> runPlan(
EnsembleTestExecutionPlan plan,
WidgetTester tester,
) async {
final resultsById = <String, EnsembleSingleTestResult>{};
var config = await harness.buildConfig();
for (final def in plan.ordered) {
final test = def.testCase;
final prereq = test.prerequisite;
if (prereq != null) {
final prereqResult = resultsById[prereq];
if (prereqResult == null) {
throw EnsembleTestFailure(
'Internal error: prerequisite "$prereq" for "${test.id}" was not scheduled',
);
}
if (prereqResult.status == TestStatus.failed) {
resultsById[test.id] = EnsembleSingleTestResult.failed(
testId: test.id,
metadata: test.metadataJson,
error: 'Prerequisite "$prereq" failed',
durationMs: 0,
report: buildTestReportDetails(test),
);
continue;
}
}
final out = await runOne(
test,
tester,
existingConfig: config,
continuation: test.hasPrerequisite,
);
resultsById[test.id] = out.result;
config = out.config;
}
return resultsById;
}