@Override public void filter(Filter filter) throws NoTestsRemainException { invalidateSpecDescription(); getSpec().filterFeatures(new JUnitFilterAdapter(filter)); if (allFeaturesExcluded()) throw new NoTestsRemainException(); }
@Override public Description getDescription() { runExtensionsIfNecessary(); generateSpecDescriptionIfNecessary(); return getSpec().getDescription(); }
@Override public void sort(Sorter sorter) { invalidateSpecDescription(); getSpec().sortFeatures(new JUnitSorterAdapter(sorter)); }
public void runTest(final Sputnik spockRunner, final Result testResult) { final RunNotifier notifier = new RunNotifier(); notifier.addFirstListener(testResult.createListener()); for (RunListener listener : getRunListeners()) { notifier.addListener(listener); } spockRunner.run(notifier); }
private boolean allFeaturesExcluded() { for (FeatureInfo feature: getSpec().getAllFeatures()) if (!feature.isExcluded()) return false; return true; } }
@Override public TestResult execute(final Class<?> testClass, final String methodName) { final Result testResult = new Result(); try { final Sputnik spockRunner = new ArquillianSputnik(testClass); spockRunner.filter(new SpockSpecificationFilter(spockRunner, methodName)); runTest(spockRunner, testResult); } catch (Exception e) { return TestResult.failed(e); } return convertToTestResult(testResult); }
private void generateSpecDescriptionIfNecessary() { if (descriptionGenerated) return; new JUnitDescriptionGenerator(getSpec()).describeSpec(); descriptionGenerated = true; }
@Override public void run(RunNotifier notifier) { runExtensionsIfNecessary(); generateSpecDescriptionIfNecessary(); RunContext.get().createSpecRunner(getSpec(), notifier).run(); }
private void runExtensionsIfNecessary() { if (extensionsRun) return; RunContext.get().createExtensionRunner(getSpec()).run(); extensionsRun = true; }