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(); }
private void runIteration(Object[] dataValues, int estimatedNumIterations) { if (runStatus != OK) return; currentIteration = createIterationInfo(dataValues, estimatedNumIterations); getSpecificationContext().setCurrentIteration(currentIteration); supervisor.beforeIteration(currentIteration); invoke(this, createMethodInfoForDoRunIteration()); supervisor.afterIteration(currentIteration); getSpecificationContext().setCurrentIteration(null); currentIteration = null; }
private SpecInfo getSpec() { if (spec == null) { spec = new SpecInfoBuilder(clazz).build(); new JUnitDescriptionGenerator(spec).describeSpecMethods(); } return spec; }
public static void verifyCondition(@Nullable ErrorCollector errorCollector, @Nullable ValueRecorder recorder, @Nullable String text, int line, int column, @Nullable Object message, @Nullable Object condition) { if (!GroovyRuntimeUtil.isTruthy(condition)) { final ConditionNotSatisfiedError conditionNotSatisfiedError = new ConditionNotSatisfiedError( new Condition(getValues(recorder), text, TextPosition.create(line, column), messageToString(message), null, null)); errorCollector.collectOrThrow(conditionNotSatisfiedError); } }
void verify(@Nullable ErrorCollector errorCollector, @Nullable List<Object> values, @Nullable String text, int line, int column, @Nullable String message) { if (HamcrestFacade.matches(matcher, actual)) return; if (values != null) { CollectionUtil.setLastElement(values, shortSyntax ? actual : false); replaceMatcherValues(values); } String description = HamcrestFacade.getFailureDescription(matcher, actual, message); Condition condition = new Condition(values, text, TextPosition.create(line, column), description, null, null); errorCollector.collectOrThrow(new ConditionNotSatisfiedError(condition)); }
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 start() { globalExtensionRegistry.initializeGlobalExtensions(); if (configurationScript != null) { ConfigurationBuilder builder = new ConfigurationBuilder(); builder.build(globalExtensionRegistry, configurationScript); } globalExtensionRegistry.startGlobalExtensions(); }
private void generateSpecDescriptionIfNecessary() { if (descriptionGenerated) return; new JUnitDescriptionGenerator(getSpec()).describeSpec(); descriptionGenerated = true; }
private void runSpec() { if (runStatus != OK) return; supervisor.beforeSpec(spec); invoke(this, createMethodInfoForDoRunSpec()); supervisor.afterSpec(spec); }
public ParameterizedSpecRunner createSpecRunner(SpecInfo spec, RunNotifier notifier) { return new ParameterizedSpecRunner(spec, new JUnitSupervisor(spec, notifier, createStackTraceFilter(spec), diffedObjectRenderer)); }
private IStackTraceFilter createStackTraceFilter(SpecInfo spec) { RunnerConfiguration runnerConfig = globalExtensionRegistry.getConfigurationByType(RunnerConfiguration.class); return runnerConfig.filterStackTrace ? new StackTraceFilter(spec) : new DummyStackTraceFilter(); }
@Override public String describeMismatch(Object arg) { throw new InvalidSpecException("*_ may only appear at the end of an argument list"); } }
private static String doRenderValue(ExpressionInfo expr) { for (ExpressionComparisonRenderer renderer : RENDERERS) { String result = renderer.render(expr); if (result != null) return result; } return renderToStringOrDump(expr); }
private void closeDataProviders(Object[] dataProviders) { if (action(runStatus) == ABORT) return; if (dataProviders == null) return; // there was an error creating the providers for (Object provider : dataProviders) { GroovyRuntimeUtil.invokeMethodQuietly(provider, "close"); } }
@Override public String getMessage() { return "Condition failed with Exception:\n\n" + getCondition().getRendering(); } }
public JUnitSupervisor(SpecInfo spec, RunNotifier notifier, IStackTraceFilter filter, IObjectRenderer<Object> diffedObjectRenderer) { this.spec = spec; this.notifier = notifier; this.filter = filter; this.masterListener = new MasterRunListener(spec); this.diffedObjectRenderer = diffedObjectRenderer; }
@Override public Object run() { GroovyRuntimeUtil.invokeClosure(closure); return null; }
@Override public void afterIteration(final IterationInfo iteration) { addEvent(new Runnable() { @Override public void run() { delegate.afterIteration(iteration); } }); }