PropertyBasedConfiguration.java
- package org.jbehave.core.configuration;
- import org.jbehave.core.failures.FailingUponPendingStep;
- import org.jbehave.core.failures.PendingStepStrategy;
- import org.jbehave.core.reporters.SilentSuccessFilter;
- import org.jbehave.core.reporters.StoryReporter;
- /**
- * PropertyBasedConfiguration is backed by MostUsefulConfiguration as default,
- * but has different behaviour if certain system properties are set:
- * <ul>
- * <li>{@link #FAIL_ON_PENDING}: uses {@link FailingUponPendingStep}</li>
- * <li>{@link #SILENT_SUCCESS}: uses {@link SilentSuccessFilter} decorator</li>
- * </ul>
- */
- public class PropertyBasedConfiguration extends MostUsefulConfiguration {
- public static final String FAIL_ON_PENDING = "org.jbehave.core.configuration.failonpending";
- public static final String SILENT_SUCCESS = "org.jbehave.core.configuration.silentsuccess";
- /**
- * <p>
- * If the system property {@link #SILENT_SUCCESS} is set, uses a
- * {@link SilentSuccessFilter} to decorate the default StoryReporter.
- * </p>
- * <p>
- * Setting {@link #SILENT_SUCCESS} will only show the steps for all stories
- * if the stories fail.
- * </p>
- */
- @Override
- public StoryReporter defaultStoryReporter() {
- StoryReporter storyReporter = super.defaultStoryReporter();
- if (System.getProperty(SILENT_SUCCESS) == null) {
- return storyReporter;
- } else {
- return new SilentSuccessFilter(storyReporter);
- }
- }
-
- /**
- * <p>
- * If the system property {@link #FAIL_ON_PENDING} is set, returns
- * {@link FailingUponPendingStep} otherwise returns the default.
- * </p>
- * <p>
- * Setting {@link #FAIL_ON_PENDING} will cause pending steps to fail story
- * execution, so you can see if any steps don't match or are still to be
- * implemented.
- * </p>
- */
- @Override
- public PendingStepStrategy pendingStepStrategy() {
- if (System.getProperty(FAIL_ON_PENDING) == null) {
- return super.pendingStepStrategy();
- }
- return new FailingUponPendingStep();
- }
- }