commit de9e8c8a63ce293496f345df260cd44673b83ce2 Author: Paul Hammant <p...@hammant.org> AuthorDate: Sun Apr 29 10:55:31 2012 +0200 Commit: Paul Hammant <p...@hammant.org> CommitDate: Sun Apr 29 10:55:31 2012 +0200
JBEHAVE-773 - CrossReference should be able to mark pendings as failures diff --git a/jbehave-core/src/main/java/org/jbehave/core/reporters/CrossReference.java b/jbehave-core/src/main/java/org/jbehave/core/reporters/CrossReference.java index 357554c..7c970f9 100755 --- a/jbehave-core/src/main/java/org/jbehave/core/reporters/CrossReference.java +++ b/jbehave-core/src/main/java/org/jbehave/core/reporters/CrossReference.java @@ -2,6 +2,17 @@ package org.jbehave.core.reporters; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.json.JsonHierarchicalStreamDriver; +import org.jbehave.core.io.StoryLocation; +import org.jbehave.core.model.ExamplesTable; +import org.jbehave.core.model.Meta; +import org.jbehave.core.model.Narrative; +import org.jbehave.core.model.Scenario; +import org.jbehave.core.model.StepPattern; +import org.jbehave.core.model.Story; +import org.jbehave.core.steps.NullStepMonitor; +import org.jbehave.core.steps.StepMonitor; +import org.jbehave.core.steps.StepType; + import java.io.File; import java.io.FileWriter; import java.io.IOException; @@ -13,16 +24,6 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; -import org.jbehave.core.io.StoryLocation; -import org.jbehave.core.model.ExamplesTable; -import org.jbehave.core.model.Meta; -import org.jbehave.core.model.Narrative; -import org.jbehave.core.model.Scenario; -import org.jbehave.core.model.StepPattern; -import org.jbehave.core.model.Story; -import org.jbehave.core.steps.NullStepMonitor; -import org.jbehave.core.steps.StepMonitor; -import org.jbehave.core.steps.StepType; public class CrossReference extends Format { @@ -42,6 +43,7 @@ public class CrossReference extends Format { private boolean excludeStoriesWithNoExecutedScenarios = false; private boolean outputAfterEachStory = false; private Format threadSafeDelegateFormat; + private boolean pendingAsFailedStories; public CrossReference() { this("XREF"); @@ -65,6 +67,11 @@ public class CrossReference extends Format { return this; } + public CrossReference markPendingStepsAsFailedStories() { + pendingAsFailedStories = true; + return this; + } + public CrossReference withOutputAfterEachStory(boolean outputAfterEachStory) { this.outputAfterEachStory = outputAfterEachStory; return this; @@ -192,6 +199,14 @@ public class CrossReference extends Format { } @Override + public void pending(String step) { + if (pendingAsFailedStories) { + failingStories.add(currentStory.get().getPath()); + } + super.pending(step); + } + + @Override public void failed(String step, Throwable cause) { failingStories.add(currentStory.get().getPath()); super.failed(step, cause);