private AllureResults runStories(final String... storyResources) {
final AllureResultsWriterStub writer = new AllureResultsWriterStub();
final AllureLifecycle lifecycle = new AllureLifecycle(writer);
final Embedder embedder = new Embedder();
embedder.useEmbedderMonitor(new NullEmbedderMonitor());
embedder.useEmbedderControls(new EmbedderControls()
.doGenerateViewAfterStories(false)
.doFailOnStoryTimeout(false)
.doBatch(false)
.doIgnoreFailureInStories(true)
.doIgnoreFailureInView(true)
.doVerboseFailures(false)
.doVerboseFiltering(false)
);
final AllureJbehave allureJbehave = new AllureJbehave(lifecycle);
embedder.useConfiguration(new MostUsefulConfiguration()
.useStoryLoader(new LoadFromClasspath(this.getClass()))
.useStoryReporterBuilder(new ReportlessStoryReporterBuilder(temp.toFile())
.withReporters(allureJbehave)
)
.useDefaultStoryReporter(new NullStoryReporter())
);
final InjectableStepsFactory stepsFactory = new InstanceStepsFactory(
embedder.configuration(),
new SimpleStorySteps(),
new BrokenStorySteps()
);
embedder.useCandidateSteps(stepsFactory.createCandidateSteps());
final AllureLifecycle cached = Allure.getLifecycle();
try {
Allure.setLifecycle(lifecycle);
embedder.runStoriesAsPaths(Arrays.asList(storyResources));
} finally {
Allure.setLifecycle(cached);
}
return writer;
}