/** * Creates a new instance of {@link GherkinStoryParser}. * @return a new instance of {@link GherkinStoryParser} */ public GherkinStoryParser createGherkinStoryParser() { return new GherkinStoryParser(); } }
public GherkinStoryParser(StoryParser delegate){ super(delegate, new GherkinTransformer()); }
public void feature(Feature feature) { out.append(feature.getName()).append("\n\n"); writeNarrative(feature.getDescription()); writeMeta(feature.getTags()); }
private void writeNarrative(String description) { boolean matches = false; Matcher findingNarrative = compile(".*" + keywords.narrative() + "(.*?)", DOTALL).matcher(description); if (findingNarrative.matches()) { String narrative = findingNarrative.group(1).trim(); matches = writeNarrativeWithDefaultSyntax(out, narrative); if (!matches){ matches = writeNarrativeWithAlternativeSyntax(out, narrative); } } if (!matches){ // if narrative format does not match, write description as part of story description out.append(description); } }
public void step(Step step) { out.append(step.getKeyword()+step.getName()).append("\n"); writeRows(step.getRows()); }
public void scenarioOutline(ScenarioOutline scenarioOutline) { out.append("\n").append(keywords.scenario()+scenarioOutline.getName()).append("\n\n"); writeMeta(scenarioOutline.getTags()); }
@Override public Configuration configuration() { Class<? extends JSystemEmbedder> embedderClass = this.getClass(); StoryParser parser = null; switch (parserType) { case GHERKIN: parser = new GherkinStoryParser(); break; case REGEX: parser = new RegexStoryParser(); break; default: parser = new RegexStoryParser(); } return new MostUsefulConfiguration() .useStoryParser(parser) .useStoryLoader(new LoadFromClasspath(embedderClass.getClassLoader())) .useStoryReporterBuilder( new StoryReporterBuilder() .withCodeLocation(CodeLocations.codeLocationFromClass(embedderClass)) .withDefaultFormats() .withCodeLocation(CodeLocations.codeLocationFromPath(getReportsFolder())) .withFormats(org.jbehave.core.reporters.Format.CONSOLE, Format.HTML, Format.XML, Format.TXT).withCrossReference(new CrossReference())) .useStepPatternParser(new RegexPrefixCapturingPatternParser("%")) .useStepMonitor(new SilentStepMonitor()); }
public void examples(Examples examples) { out.append("\n").append(keywords.examplesTable()+examples.getName()).append("\n"); writeRows(examples.getRows()); }
public void scenario(Scenario scenario) { out.append("\n").append(keywords.scenario()+scenario.getName()).append("\n\n"); writeMeta(scenario.getTags()); }