void runIteration(SpockExecutionContext context, IterationInfo iterationInfo, Runnable runnable) {
    if (context.getErrorInfoCollector().hasErrors()) return;

    context = context.withCurrentIteration(iterationInfo);
    getSpecificationContext(context).setCurrentIteration(iterationInfo);

    supervisor.beforeIteration(iterationInfo);
    invoke(context, this, createMethodInfoForDoRunIteration(context, runnable));
    supervisor.afterIteration(iterationInfo);
    runCloseContextStoreProvider(context, MethodKind.CLEANUP);
  }
Executes a single Spec. Notifies its supervisor about overall execution
progress and every invocation of Spec code.
Supervisor also determines the error strategy.

@author Peter Niederwieser
spock-core/src/main/java/org/spockframework/runtime/PlatformSpecRunner.java