1package net.thucydides.jbehave;2import org.jbehave.core.configuration.Configuration;3import org.jbehave.core.configuration.MostUsefulConfiguration;4import org.jbehave.core.configuration.spring.SpringStoryControls;5import org.jbehave.core.embedder.Embedder;6import org.jbehave.core.embedder.EmbedderControls;7import org.jbehave.core.io.LoadFromClasspath;8import org.jbehave.core.io.StoryFinder;9import org.jbehave.core.junit.spring.SpringAnnotatedEmbedderRunner;10import org.jbehave.core.reporters.Format;11import org.jbehave.core.reporters.StoryReporterBuilder;12import org.junit.Test;13import org.junit.runner.RunWith;14import java.util.List;15@RunWith(SpringAnnotatedEmbedderRunner.class)16public class JBehaveStoryRunner extends ThucydidesJUnitStory {17 public Configuration configuration() {18 return new MostUsefulConfiguration()19 .useStoryControls(new SpringStoryControls().doDryRun(false).doSkipScenariosAfterFailure(false))20 .useStoryLoader(new LoadFromClasspath(this.getClass()))21 .useStoryReporterBuilder(22 new StoryReporterBuilder().withDefaultFormats().withFormats(Format.CONSOLE, Format.STATS));23 }24 public EmbedderControls embedderControls() {25 return new EmbedderControls().doIgnoreFailureInStories(false).doIgnoreFailureInView(false)26 .doVerboseFailures(true).doVerboseFiltering(true);27 }28 public List<String> storyPaths() {29 return new StoryFinder().findPaths(30 codeLocationFromClass(this.getClass()).getFile(), "**/*.story", "");31 }32 public Embedder configuredEmbedder() {33 Embedder configuredEmbedder = super.configuredEmbedder();34 configuredEmbedder.embedderControls().doIgnoreFailureInStories(false).doIgnoreFailureInView(false)35 .doVerboseFailures(true).doVerboseFiltering(true);36 return configuredEmbedder;37 }38 public void run() throws Throwable {39 super.run();40 }41}