execute method
Future<void>
execute({
- required CancelToken cancelToken,
- required TestReport report,
- required TestController tester,
Executes the step. This will iterate through the List of steps and will await the execution of each one.
Implementation
@override
Future<void> execute({
required CancelToken cancelToken,
required TestReport report,
required TestController tester,
}) async {
log(
"$id('$debugLabel')",
tester: tester,
);
var stepNum = 0;
for (var rawStep in steps) {
if (cancelToken.cancelled == true) {
throw Exception('[CANCELLED]: the step has been cancelled.');
}
var stepMap = tester.resolveVariable(rawStep);
if (stepMap == null) {
log(
"multi_step('$debugLabel') step: [${stepMap['id']}] [${100 * stepNum ~/ steps.length}%] -- no step",
tester: tester,
);
} else {
var step = TestStep.fromDynamic(stepMap);
log(
"multi_step('$debugLabel') step: [${stepMap['id']}] [${100 * stepNum ~/ steps.length}%] -- executing step",
tester: tester,
);
await tester.executeStep(
cancelToken: cancelToken,
report: report,
step: step,
subStep: true,
);
}
stepNum++;
}
log(
"multi_step('$debugLabel') -- finished execution",
tester: tester,
);
}