How to use beforeStory method of net.serenitybdd.jbehave.SerenityReporter class

Best Serenity jBehave code snippet using net.serenitybdd.jbehave.SerenityReporter.beforeStory

Source:SerenityReporter.java Github

copy

Full Screen

...97 private void clearActiveScenariosData() {98 activeScenarios.clear();99 }100 @Override101 public void beforeStory(Story story, boolean givenStory) {102 logger.debug("before story {}", story.getName());103 prepareSerenityListeners();104 currentStoryIs(story);105 noteAnyGivenStoriesFor(story);106 storyMetadata = getMetadataFrom(story.getMeta());107 if (!isFixture(story) && !givenStory) {108 clearActiveScenariosData();109 configureDriver(story);110 SerenityStepFactory.resetContext();111 if (!isAStoryLevelGiven(story)) {112 startTestSuiteForStory(story);113 if (givenStoriesPresentFor(story)) {114 startTestForFirstScenarioIn(story);115 }116 }117 } else if (givenStory) {118 shouldNestScenarios(true);119 }120 registerStoryMeta(story.getMeta());121 }122 private void prepareSerenityListeners() {123 getSerenityListeners().withDriver(ThucydidesWebDriverSupport.getDriver());124 }125 private boolean nestScenarios = false;126 private boolean shouldNestScenarios() {127 return nestScenarios;128 }129 private void shouldNestScenarios(boolean nestScenarios) {130 this.nestScenarios = nestScenarios;131 }132 private void startTestForFirstScenarioIn(Story story) {133 startScenarioCalled(story.getScenarios().get(0), story);134 StepEventBus.getEventBus().stepStarted(ExecutedStepDescription.withTitle("Preconditions"));135 shouldNestScenarios(true);136 }137 @Override138 public void beforeScenario(Scenario scenario) {139 String scenarioTitle = scenario.getTitle();140 logger.debug("before scenario started {}", scenarioTitle);141 if (shouldResetStepsBeforeEachScenario()) {142 SerenityStepFactory.resetContext();143 }144 resetDriverIfNecessary();145 if (isCurrentScenario(scenarioTitle)) {146 return;147 }148 if (shouldNestScenarios()) {149 startNewStep(scenarioTitle);150 } else {151 startScenarioCalled(scenario, currentStory());152 }153 Meta meta = scenario.getMeta();154 logger.debug("scenario:\"{}\" registering metadata for {}",155 StringUtils.isEmpty(scenarioTitle) ? " don't know name " : scenarioTitle, meta);156 registerIssues(meta);157 registerFeaturesAndEpics(meta);158 registerTags(meta);159 registerMetadata(meta);160 registerScenarioMeta(meta);161 markAsSkippedOrPendingIfAnnotatedAsSuchIn(scenarioTags(scenario));162 }163 private List<String> scenarioTags(Scenario scenario) {164 List<String> scenarioTags = new ArrayList<>(scenario.getMeta().getPropertyNames());165 scenarioTags.addAll(currentStory().getMeta().getPropertyNames());166 return scenarioTags;167 }168 private void resetDriverIfNecessary() {169 if (Serenity.currentDriverIsDisabled()) {170 Serenity.getWebdriverManager().resetDriver();171 }172 }173 private boolean isCurrentScenario(String scenarioTitle) {174 return !activeScenarios.empty() && scenarioTitle.equals(activeScenarios.peek().getTitle());175 }176 private Scenario currentScenario() {177 return activeScenarios.peek();178 }179 private void startNewStep(String scenarioTitle) {180 if (givenStoryMonitor.isInGivenStory() && StepEventBus.getEventBus().areStepsRunning()) {181 StepEventBus.getEventBus().updateCurrentStepTitleAsPrecondition(scenarioTitle);182 } else {183 StepEventBus.getEventBus().stepStarted(ExecutedStepDescription.withTitle(scenarioTitle),184 givenStoryMonitor.isInGivenStory());185 }186 }187 private boolean givenStoriesPresentFor(Story story) {188 return !story.getGivenStories().getStories().isEmpty();189 }190 private void startTestSuiteForStory(Story story) {191 String storyName = removeSuffixFrom(story.getName());192 String storyTitle = (isNotEmpty(story.getDescription().asString())) ? story.getDescription().asString() : NameConverter.humanize(storyName);193 net.thucydides.core.model.Story userStory194 = net.thucydides.core.model.Story.withIdAndPath(storyName, storyTitle, stripStoriesFolderFrom(story.getPath()))195 .withNarrative(getNarrativeFrom(story));196 StepEventBus.getEventBus().testSuiteStarted(userStory);197 registerTags(story);198 }199 private String stripStoriesFolderFrom(String path) {200 String storyDirectory = environmentVariables.getProperty(STORY_DIRECTORY,"stories");201 return (path.toLowerCase().startsWith(storyDirectory + "/")) ? path.substring(storyDirectory.length() + 1) : path;202 }203 private String getNarrativeFrom(Story story) {204 return (!story.getNarrative().isEmpty()) ?205 story.getNarrative().asString(new Keywords()).trim() : "";206 }207 private void noteAnyGivenStoriesFor(Story story) {208 for (GivenStory given : story.getGivenStories().getStories()) {209 String givenStoryName = new File(given.getPath()).getName();210 givenStories.add(givenStoryName);211 }212 }213 private boolean isAStoryLevelGiven(Story story) {214 for (String givenStoryName : givenStories) {215 if (hasSameName(story, givenStoryName)) {216 return true;217 }218 }219 return false;220 }221 private void givenStoryDone(Story story) {222 givenStories.remove(story.getName());223 }224 private boolean hasSameName(Story story, String givenStoryName) {225 return story.getName().equalsIgnoreCase(givenStoryName);226 }227 private void configureDriver(Story story) {228 StepEventBus.getEventBus().setUniqueSession(systemConfiguration.shouldUseAUniqueBrowser());229 String requestedDriver = getRequestedDriver(story.getMeta());230 // An annotated driver that ends with "!" overrides the command-line configured driver231 if (isEmphatic(requestedDriver)) {232 ThucydidesWebDriverSupport.useDefaultDriver(unemphasised(requestedDriver));233 } else if (StringUtils.isNotEmpty(requestedDriver) && (!driverIsProvidedInTheEnvironmentVariables())){234 ThucydidesWebDriverSupport.useDefaultDriver(requestedDriver);235 }236 }237 private String unemphasised(String requestedDriver) {238 return requestedDriver.replace("!","");239 }240 private boolean isEmphatic(String requestedDriver) {241 return requestedDriver != null && requestedDriver.endsWith("!");242 }243 private boolean driverIsProvidedInTheEnvironmentVariables() {244 return (isNotEmpty(systemConfiguration.getEnvironmentVariables().getProperty(WEBDRIVER_DRIVER)));245 }246 private void registerTags(Story story) {247 registerStoryIssues(story.getMeta());248 registerStoryFeaturesAndEpics(story.getMeta());249 registerStoryTags(story.getMeta());250 registerStoryMeta(story.getMeta());251 }252 private boolean isFixture(Story story) {253 return (story.getName().equals(BEFORE_STORIES) || story.getName().equals(AFTER_STORIES));254 }255 private String getRequestedDriver(Meta metaData) {256 if (metaData == null) {257 return null;258 }259 if (StringUtils.isNotEmpty(metaData.getProperty("driver"))) {260 return metaData.getProperty("driver");261 }262 if (systemConfiguration.getDriverType() != null) {263 return systemConfiguration.getDriverType().toString();264 }265 return null;266 }267 private List<String> getIssueOrIssuesPropertyValues(Meta metaData) {268 return getTagPropertyValues(metaData, "issue");269 }270 private List<TestTag> getFeatureOrFeaturesPropertyValues(Meta metaData) {271 List<String> features = getTagPropertyValues(metaData, "feature");272 return features.stream().map(273 featureName -> TestTag.withName(featureName).andType("feature")274 ).collect(Collectors.toList());275 }276 private List<TestTag> getEpicOrEpicsPropertyValues(Meta metaData) {277 List<String> epics = getTagPropertyValues(metaData, "epic");278 return epics.stream().map(279 epicName -> TestTag.withName(epicName).andType("epic")280 ).collect(Collectors.toList());281 }282 private List<TestTag> getTagOrTagsPropertyValues(Meta metaData) {283 List<String> tags = getTagPropertyValues(metaData, "tag");284 return tags.stream()285 .map( this::toTag )286 .collect(Collectors.toList());287 }288 public TestTag toTag(String tag) {289 List<String> tagParts = Lists.newArrayList(Splitter.on(":").trimResults().split(tag));290 if (tagParts.size() == 2) {291 return TestTag.withName(tagParts.get(1)).andType(tagParts.get(0));292 } else {293 return TestTag.withName("true").andType(tagParts.get(0));294 }295 }296 private List<String> getTagPropertyValues(Meta metaData, String tagType) {297 if (metaData == null) {298 return new ArrayList<>();299 }300 String singularTag = metaData.getProperty(tagType);301 String pluralTagType = Inflector.getInstance().pluralize(tagType);302 String multipleTags = metaData.getProperty(pluralTagType);303 String allTags = Joiner.on(',').skipNulls().join(singularTag, multipleTags);304 return Lists.newArrayList(Splitter.on(',').omitEmptyStrings().trimResults().split(allTags));305 }306 private void registerIssues(Meta metaData) {307 List<String> issues = getIssueOrIssuesPropertyValues(metaData);308 if (!issues.isEmpty()) {309 StepEventBus.getEventBus().addIssuesToCurrentTest(issues);310 }311 }312 private void registerStoryIssues(Meta metaData) {313 List<String> issues = getIssueOrIssuesPropertyValues(metaData);314 if (!issues.isEmpty()) {315 StepEventBus.getEventBus().addIssuesToCurrentStory(issues);316 }317 }318 private void registerFeaturesAndEpics(Meta metaData) {319 List<TestTag> featuresAndEpics = featureAndEpicTags(metaData);320 if (!featuresAndEpics.isEmpty()) {321 StepEventBus.getEventBus().addTagsToCurrentTest(featuresAndEpics);322 }323 }324 private List<TestTag> featureAndEpicTags(Meta metaData) {325 List<TestTag> featuresAndEpics = new ArrayList<>();326 featuresAndEpics.addAll(getFeatureOrFeaturesPropertyValues(metaData));327 featuresAndEpics.addAll(getEpicOrEpicsPropertyValues(metaData));328 return featuresAndEpics;329 }330 private void registerStoryFeaturesAndEpics(Meta metaData) {331 List<TestTag> featuresAndEpics = featureAndEpicTags(metaData);332 if (!featuresAndEpics.isEmpty()) {333 StepEventBus.getEventBus().addTagsToCurrentStory(featuresAndEpics);334 }335 }336 private void registerTags(Meta metaData) {337 List<TestTag> tags = getTagOrTagsPropertyValues(metaData);338 if (!tags.isEmpty()) {339 StepEventBus.getEventBus().addTagsToCurrentTest(tags);340 }341 }342 private Map<String, String> getMetadataFrom(Meta metaData) {343 Map<String, String> metadataValues = new HashMap<>();344 if (metaData == null) {345 return metadataValues;346 }347 for (String propertyName : metaData.getPropertyNames()) {348 metadataValues.put(propertyName, metaData.getProperty(propertyName));349 }350 return metadataValues;351 }352 private void registerMetadata(Meta metaData) {353 Serenity.getCurrentSession().clearMetaData();354 Map<String, String> scenarioMetadata = getMetadataFrom(metaData);355 scenarioMetadata.putAll(storyMetadata);356 for (String key : scenarioMetadata.keySet()) {357 Serenity.getCurrentSession().addMetaData(key, scenarioMetadata.get(key));358 }359 }360 private void registerStoryTags(Meta metaData) {361 List<TestTag> tags = getTagOrTagsPropertyValues(metaData);362 if (!tags.isEmpty()) {363 StepEventBus.getEventBus().addTagsToCurrentStory(tags);364 }365 }366 private void registerStoryMeta(Meta metaData) {367 if (isPending(metaData)) {368 StepEventBus.getEventBus().suspendTest();369 } else if (isSkipped(metaData)) {370 StepEventBus.getEventBus().suspendTest();371 } else if (isIgnored(metaData)) {372 StepEventBus.getEventBus().suspendTest();373 } else if (isManual(metaData)) {374 StepEventBus.getEventBus().suspendTest();375 }376 }377 private boolean isStoryManual() {378 return isManual(currentStory().getMeta());379 }380 private void registerScenarioMeta(Meta metaData) {381 // Manual can be combined with the other tags to override the default result category382 if (isManual(metaData) || isStoryManual()) {383 StepEventBus.getEventBus().testIsManual();384 }385 }386 private String removeSuffixFrom(String name) {387 return (name.contains(".")) ? name.substring(0, name.indexOf(".")) : name;388 }389 @Override390 public void afterStory(boolean given) {391 logger.debug("afterStory {}", given);392 shouldNestScenarios(false);393 if (given) {394 givenStoryMonitor.exitingGivenStory();395 givenStoryDone(currentStory());396 } else {397 if (isAfterStory(currentStory())) {398 generateReports();399 } else if (!isFixture(currentStory()) && (!isAStoryLevelGiven(currentStory()))) {400 StepEventBus.getEventBus().testSuiteFinished();401 clearListeners();402 }403 }404 storyStack.pop();405 }406 private boolean isAfterStory(Story currentStory) {407 return (currentStory.getName().equals(AFTER_STORIES));408 }409 private synchronized void generateReports() {410 getReportService().generateReportsFor(getAllTestOutcomes());411 }412 public List<TestOutcome> getAllTestOutcomes() {413 return baseStepListeners.stream()414 .map(BaseStepListener::getTestOutcomes)415 .flatMap(Collection::stream)416 .collect(Collectors.toList());417 }418 @Override419 public void narrative(Narrative narrative) {420 logger.debug("narrative {}", narrative);421 }422 @Override423 public void lifecyle(Lifecycle lifecycle) {424 logger.debug("lifecyle {}", lifecycle);425 }426 @Override427 public void scenarioNotAllowed(Scenario scenario, String s) {428 logger.debug("scenarioNotAllowed {}", scenario.getTitle());429 StepEventBus.getEventBus().testIgnored();430 }431 private void startScenarioCalled(Scenario scenario, Story story) {432 StepEventBus.getEventBus().setTestSource(TEST_SOURCE_JBEHAVE.getValue());433 StepEventBus.getEventBus().testStarted(scenario.getTitle(), story.getPath() + ";" + scenario.getTitle());434 activeScenarios.add(scenario);435 }436 private boolean shouldResetStepsBeforeEachScenario() {437 return systemConfiguration.getEnvironmentVariables().getPropertyAsBoolean(438 SerenityJBehaveSystemProperties.RESET_STEPS_EACH_SCENARIO.getName(), true);439 }440 private void markAsSkippedOrPendingIfAnnotatedAsSuchIn(List<String> tags) {441 if (isManual(tags)) {442 StepEventBus.getEventBus().testIsManual();443 }444 if (isSkipped(tags)) {445 StepEventBus.getEventBus().testSkipped();446 StepEventBus.getEventBus().getBaseStepListener().overrideResultTo(TestResult.SKIPPED);447 }448 if (isPending(tags)) {449 StepEventBus.getEventBus().testPending();450 StepEventBus.getEventBus().getBaseStepListener().overrideResultTo(TestResult.PENDING);451 }452 if (isIgnored(tags)) {453 StepEventBus.getEventBus().testIgnored();454 StepEventBus.getEventBus().getBaseStepListener().overrideResultTo(TestResult.IGNORED);455 }456 }457 private boolean isSkipped(List<String> tags) {458 return tags.contains("skip") || tags.contains("wip");459 }460 private boolean isPending(List<String> tags) {461 return tags.contains("pending");462 }463 private boolean isIgnored(List<String> tags) {464 return tags.contains("ignore");465 }466 private boolean isManual(List<String> tags) {467 return tags.contains("manual");468 }469 private boolean isPending(Meta metaData) {470 return metaData != null && (metaData.hasProperty(PENDING));471 }472 private boolean isManual(Meta metaData) {473 return metaData != null && (metaData.hasProperty(MANUAL));474 }475 private boolean isSkipped(Meta metaData) {476 return metaData != null && (metaData.hasProperty(WIP) || metaData.hasProperty(SKIP));477 }478 private boolean isCandidateToBeExecuted(Meta metaData) {479 return !isIgnored(metaData) && !isPending(metaData) && !isSkipped(metaData);480 }481 private boolean isIgnored(Meta metaData) {482 return metaData != null && (metaData.hasProperty(IGNORE));483 }484 @Override485 public void afterScenario() {486 Scenario scenario = currentScenario();487 logger.debug("afterScenario : {}", scenario.getTitle());488 List<String> scenarioTags = scenarioTags(scenario);489 markAsSkippedOrPendingIfAnnotatedAsSuchIn(scenarioTags);490 if (givenStoryMonitor.isInGivenStory() || shouldNestScenarios()) {491 StepEventBus.getEventBus().stepFinished();492 } else {493 if (!(isPending(scenarioTags) || isSkipped(scenarioTags) || isIgnored(scenarioTags))) {494 StepEventBus.getEventBus().testFinished(executingExamples());495 }496 activeScenarios.pop();497 }498 ThucydidesWebDriverSupport.clearStepLibraries();499 }500 @Override501 public void givenStories(GivenStories givenStories) {502 logger.debug("givenStories {}", givenStories);503 givenStoryMonitor.enteringGivenStory();504 }505 @Override506 public void givenStories(List<String> strings) {507 logger.debug("givenStories {}", strings);508 }509 int exampleCount = 0;510 @Override511 public void beforeExamples(List<String> steps, ExamplesTable table) {512 logger.debug("beforeExamples {} {}", steps, table);513 if (givenStoryMonitor.isInGivenStory()) {514 return;515 }516 exampleCount = 0;517 StepEventBus.getEventBus().useExamplesFrom(serenityTableFrom(table));518 }519 private DataTable serenityTableFrom(ExamplesTable table) {520 String scenarioOutline = scenarioOutlineFrom(currentScenario());521 return DataTable.withHeaders(table.getHeaders())522 .andScenarioOutline(scenarioOutline)523 .andMappedRows(table.getRows())524 .build();525 }526 private String scenarioOutlineFrom(Scenario scenario) {527 StringBuilder outline = new StringBuilder();528 for (String step : scenario.getSteps()) {529 outline.append(step.trim()).append(System.lineSeparator());530 }531 return outline.toString();532 }533 @Override534 public void example(Map<String, String> tableRow, int exampleIndex) {535 StepEventBus.getEventBus().clearStepFailures();536 if (givenStoryMonitor.isInGivenStory()) {537 return;538 }539 if (executingExamples()) {540 finishExample();541 }542 exampleCount++;543 startExample(tableRow);544 }545 private void startExample(Map<String, String> data) {546 StepEventBus.getEventBus().exampleStarted(data);547 }548 private void finishExample() {549 StepEventBus.getEventBus().exampleFinished();550 }551 private boolean executingExamples() {552 return (exampleCount > 0);553 }554 @Override555 public void afterExamples() {556 if (givenStoryMonitor.isInGivenStory()) {557 return;558 }559 finishExample();560 }561 @Override562 public void beforeStep(String stepTitle) {563 StepEventBus.getEventBus().stepStarted(ExecutedStepDescription.withTitle(stepTitle));564 }565 @Override566 public void successful(String title) {567 if (annotatedResultTakesPriority()) {568 processAnnotatedResult();569 } else {570 StepEventBus.getEventBus().updateCurrentStepTitle(normalized(title));571 StepEventBus.getEventBus().stepFinished();572 }573 }574 private void processAnnotatedResult() {575 TestResult forcedResult = StepEventBus.getEventBus().getForcedResult().get();576 switch (forcedResult) {577 case PENDING:578 StepEventBus.getEventBus().stepPending();579 break;580 case IGNORED:581 StepEventBus.getEventBus().stepIgnored();582 break;583 case SKIPPED:584 StepEventBus.getEventBus().stepIgnored();585 break;586 default:587 StepEventBus.getEventBus().stepIgnored();588 }589 }590 private boolean annotatedResultTakesPriority() {591 return StepEventBus.getEventBus().getForcedResult().isPresent();592 }593 @Override594 public void ignorable(String title) {595 StepEventBus.getEventBus().updateCurrentStepTitle(normalized(title));596 StepEventBus.getEventBus().stepIgnored();597 }598 @Override599 public void comment(String step) {600 StepEventBus.getEventBus().stepStarted(ExecutedStepDescription.withTitle(step));601 StepEventBus.getEventBus().stepIgnored();602 }603 @Override604 public void pending(String stepTitle) {605 StepEventBus.getEventBus().stepStarted(ExecutedStepDescription.withTitle(normalized(stepTitle)));606 StepEventBus.getEventBus().stepPending();607 }608 @Override609 public void notPerformed(String stepTitle) {610 StepEventBus.getEventBus().stepStarted(ExecutedStepDescription.withTitle(normalized(stepTitle)));611 StepEventBus.getEventBus().stepIgnored();612 }613 @Override614 public void failed(String stepTitle, Throwable cause) {615 if (!StepEventBus.getEventBus().testSuiteHasStarted()) {616 declareOutOfSuiteFailure();617 }618 if (!errorOrFailureRecordedForStep(cause.getCause())) {619 StepEventBus.getEventBus().updateCurrentStepTitle(stepTitle);620 Throwable rootCause = new RootCauseAnalyzer(cause.getCause()).getRootCause().toException();621 if (isAssumptionFailure(rootCause)) {622 StepEventBus.getEventBus().assumptionViolated(rootCause.getMessage());623 } else {624 StepEventBus.getEventBus().stepFailed(new StepFailure(ExecutedStepDescription.withTitle(normalized(stepTitle)), rootCause));625 }626 }627 }628 private void declareOutOfSuiteFailure() {629 String storyName = !storyStack.isEmpty() ? storyStack.peek().getName() : "Before or After Story";630 String storyId = !storyStack.isEmpty() ? storyStack.peek().getPath() : null;631 StepEventBus.getEventBus().testStarted(storyName, storyId);632 }633 private boolean isAssumptionFailure(Throwable rootCause) {634 return (AssumptionViolatedException.class.isAssignableFrom(rootCause.getClass()));635 }636 public List<String> processExcludedByFilter(final Story story, final Set<String> exclude) {637 final Meta storyMeta = story.getMeta();638 final List<Scenario> processing = new LinkedList<>();639 final List<String> processed = new LinkedList<>();640 if (isSkipped(storyMeta) || isIgnored(storyMeta)) { //this story should be excluded by filter641 processing.addAll(story.getScenarios());642 } else {643 for (Scenario scenario : story.getScenarios()) {644 final Meta scenarioMeta = scenario.getMeta();645 if (isSkipped(scenarioMeta) || isIgnored(scenarioMeta)) { //this scenario should be excluded by filter646 processing.add(scenario);647 }648 }649 }650 if (processing.size() > 0) {651 final Story beforeStory = new Story();652 beforeStory.namedAs(BEFORE_STORIES);653 final Story afterStory = new Story();654 afterStory.namedAs(AFTER_STORIES);655 final Narrative narrative = story.getNarrative();656 beforeStory(beforeStory, false);657 afterStory(false);658 beforeStory(story, false);659 narrative(narrative);660 for (final Scenario filtered : processing) {661 final String scenarioKey = scenarioKey(story, filtered);662 if (!exclude.contains(scenarioKey)) {663 beforeScenario(filtered);664 final List<String> steps = filtered.getSteps();665 if (ExamplesTable.EMPTY == filtered.getExamplesTable() || filtered.getExamplesTable().getRows().size() == 0) {666 for (final String step : steps) {667 beforeStep(step);668 successful(step);669 }670 } else {671 final ExamplesTable examples = filtered.getExamplesTable();672 beforeExamples(steps, examples);673 for (final Map<String, String> row : examples.getRows()) {674 example(row);675 for (final String step : steps) {676 beforeStep(step);677 successful(step);678 }679 }680 afterExamples();681 }682 afterScenario();683 processed.add(scenarioKey(story, filtered));684 }685 }686 afterStory(false);687 beforeStory(afterStory, false);688 afterStory(false);689 }690 return processed;691 }692 private String scenarioKey(final Story story, final Scenario scenario) {693 return story.getPath().concat(scenario.getTitle());694 }695 @Override696 public void failedOutcomes(String s, OutcomesTable outcomesTable) {697 logger.debug("failedOutcomes");698 }699 @Override700 public void restarted(String s, Throwable throwable) {701 logger.debug("restarted");...

Full Screen

Full Screen

beforeStory

Using AI Code Generation

copy

Full Screen

1public void beforeStory() {2}3public void afterStory() {4}5public void beforeScenario() {6}7public void afterScenario() {8}9public void beforeStep() {10}11public void afterStep() {12}13public void beforeScenarioOutcome() {14}15public void afterScenarioOutcome() {16}17public void beforeStoryOutcome() {18}19public void afterStoryOutcome() {20}21public void beforeStepOutcome() {22}23public void afterStepOutcome() {24}

Full Screen

Full Screen

beforeStory

Using AI Code Generation

copy

Full Screen

1import net.thucydides.core.annotations.Steps;2import net.serenitybdd.jbehave.SerenityReporter;3import net.serenitybdd.jbehave.model.Story;4import net.thucydides.core.steps.StepEventBus;5import net.thucydides.core.steps.StepListener;6import net.thucydides.core.steps.StepFailure;7import net.thucydides.core.steps.StepListenerBus;8public class SerenityReporter extends net.serenitybdd.jbehave.SerenityReporter {9 private static final Logger LOGGER = LoggerFactory.getLogger(SerenityReporter.class);10 private final Story story;11 private final StepListener stepListener;12 public SerenityReporter(Story story) {13 this.story = story;14 this.stepListener = StepListenerBus.getEventBus();15 }16 public void beforeStory(Story story, boolean givenStory) {17 LOGGER.info("beforeStory");18 if (givenStory) {19 stepListener.testSuiteStarted(story.getName());20 }21 }22}23import net.thucydides.core.annotations.Steps;24import net.serenitybdd.jbehave.SerenityReporter;25import net.serenitybdd.jbehave.model.Story;26import net.thucydides.core.steps.StepEventBus;27import net.thucydides.core.steps.StepListener;28import net.thucydides.core.steps.StepFailure;29import net.thucydides.core.steps.StepListenerBus;30public class SerenityReporter extends net.serenitybdd.jbehave.SerenityReporter {31 private static final Logger LOGGER = LoggerFactory.getLogger(SerenityReporter.class);32 private final Story story;33 private final StepListener stepListener;34 public SerenityReporter(Story story) {35 this.story = story;36 this.stepListener = StepListenerBus.getEventBus();37 }38 public void afterStory(boolean givenStory) {39 LOGGER.info("afterStory");40 if (givenStory) {41 stepListener.testSuiteFinished();42 }43 }44}45package com.test;46import java.io.File;47import java.io.IOException;48import java.util.ArrayList;49import java.util.List;50import org.apache.commons.io.FileUtils;51import org.jbehave.core.configuration.Keywords;52import org.j

Full Screen

Full Screen

beforeStory

Using AI Code Generation

copy

Full Screen

1net.serenitybdd.jbehave.SerenityReporter serenityReporter;2@Given("I am on the home page")3public void givenIamOnTheHomePage() {4 serenityReporter.beforeStory();5}6net.serenitybdd.jbehave.SerenityReporter serenityReporter;7@Then("I should see the home page")8public void thenIShouldSeeTheHomePage() {9 serenityReporter.afterStory();10}11net.serenitybdd.jbehave.SerenityReporter serenityReporter;12@When("I click on the login button")13public void whenIClickOnTheLoginButton() {14 serenityReporter.beforeStep("I click on the login button");15}16net.serenitybdd.jbehave.SerenityReporter serenityReporter;17@When("I click on the login button")18public void whenIClickOnTheLoginButton() {19 serenityReporter.afterStep();20}21net.serenitybdd.jbehave.SerenityReporter serenityReporter;22@Given("I am on the home page")23public void givenIamOnTheHomePage() {24 serenityReporter.beforeScenario();25}26net.serenitybdd.jbehave.SerenityReporter serenityReporter;27@Then("I should see the home page")28public void thenIShouldSeeTheHomePage() {29 serenityReporter.afterScenario();30}

Full Screen

Full Screen

beforeStory

Using AI Code Generation

copy

Full Screen

1public void beforeStory() throws Exception {2 System.setProperty("webdriver.chrome.driver", "C:/Users/.../chromedriver.exe");3 driver = new ChromeDriver();4 driver.manage().window().maximize();5 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);6}7public void afterStory() throws Exception {8 driver.quit();9}10public void beforeScenario() throws Exception {11}12public void afterScenario() throws Exception {13 driver.close();14}15public void beforeStep() throws Exception {16 System.out.println("Before Step");17}18public void afterStep() throws Exception {19 System.out.println("After Step");20}21public void afterScenario() throws Exception {22 driver.close();23}24public void afterStory() throws Exception {25 driver.quit();26}27public void beforeScenario() throws Exception {28}

Full Screen

Full Screen

beforeStory

Using AI Code Generation

copy

Full Screen

1public void beforeStory(Story story) {2 Serenity.setSessionVariable("storyTitle").to(story.getTitle());3}4public void afterStory(Story story) {5 Serenity.setSessionVariable("storyTitle").to(story.getTitle());6}7public void beforeScenario(Scenario scenario) {8 Serenity.setSessionVariable("scenarioTitle").to(scenario.getTitle());9}10public void afterScenario(Scenario scenario) {11 Serenity.setSessionVariable("scenarioTitle").to(scenario.getTitle());12}13public void afterStep(Step step) {14 Serenity.setSessionVariable("stepTitle").to(step.getTitle());15}16public void beforeStep(Step step) {17 Serenity.setSessionVariable("stepTitle").to(step.getTitle());18}19public void beforeExample(ExamplesTable table, Map<String, String> tableRow) {20 Serenity.setSessionVariable("exampleTitle").to(tableRow.toString());21}22public void afterExample(ExamplesTable table, Map<String, String> tableRow) {23 Serenity.setSessionVariable("exampleTitle").to(tableRow.toString());24}

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful