private void runExtensionsIfNecessary() { if (extensionsRun) return; RunContext.get().createExtensionRunner(getSpec()).run(); extensionsRun = true; }
@Override public void run(RunNotifier notifier) { runExtensionsIfNecessary(); generateSpecDescriptionIfNecessary(); RunContext.get().createSpecRunner(getSpec(), notifier).run(); }
public static <T, U extends Throwable> T withNewContext(String name, File spockUserHome, @Nullable DelegatingScript configurationScript, List<Class<?>> extensionClasses, boolean inheritParentExtensions, IThrowableFunction<RunContext, T, U> command) throws U { List<Class<?>> allExtensionClasses = new ArrayList<>(extensionClasses); if (inheritParentExtensions) allExtensionClasses.addAll(getCurrentExtensions()); RunContext context = new RunContext(name, spockUserHome, configurationScript, allExtensionClasses); LinkedList<RunContext> contextStack = contextStacks.get(); contextStack.addFirst(context); try { context.start(); return command.apply(context); } finally { contextStack.removeFirst(); context.stop(); } }
public static <T> T getConfiguration(Class<T> type) { return RunContext.get().getConfiguration(type); }
public static RunContext get() { LinkedList<RunContext> contextStack = contextStacks.get(); RunContext context = contextStack.peek(); if (context == null) { context = createBottomContext(); contextStack.addFirst(context); final RunContext bottomContext = context; try { Runtime.getRuntime().addShutdownHook(new Thread("org.spockframework.runtime.RunContext.stop()") { @Override public void run() { bottomContext.stop(); } }); } catch (AccessControlException ignored) { // GAE doesn't support creating a new thread } context.start(); } return context; }
public ParameterizedSpecRunner createSpecRunner(SpecInfo spec, RunNotifier notifier) { return new ParameterizedSpecRunner(spec, new JUnitSupervisor(spec, notifier, createStackTraceFilter(spec), diffedObjectRenderer)); }
private static RunContext createBottomContext() { File spockUserHome = SpockUserHomeUtil.getSpockUserHome(); DelegatingScript script = new ConfigurationScriptLoader(spockUserHome).loadAutoDetectedScript(); List<Class<?>> classes = new ExtensionClassesLoader().loadClassesFromDefaultLocation(); return new RunContext("default", spockUserHome, script, classes); } }
private void runExtensionsIfNecessary() { if (extensionsRun) return; RunContext.get().createExtensionRunner(getSpec()).run(); extensionsRun = true; }
runExtensionsIfNecessary(); aggregateDescriptionIfNecessary(); RunContext.get().createSpecRunner(getSpec(), notifier).run();
private void runExtensionsIfNecessary() { if (extensionsRun) return; RunContext.get().createExtensionRunner(getSpec()).run(); extensionsRun = true; }
RunContext.get().createSpecRunner(getSpec(), notifier).run();