Class StoryReporterBuilder
- java.lang.Object
-
- org.jbehave.core.reporters.StoryReporterBuilder
-
public class StoryReporterBuilder extends Object
A Builder for
StoryReporter
s. It builds aDelegatingStoryReporter
with delegates for a number of formats - mostly file-based ones except . It requires aFilePrintStreamFactory
and provides default delegate instances for each format.To build a reporter for a single story path with default and given formats:
Class<MyStory> storyClass = MyStory.class; StoryPathResolver resolver = new UnderscoredCamelCaseResolver(); String storyPath = resolver.resolve(storyClass); StoryReporter reporter = new StoryReporterBuilder() .withCodeLocation(CodeLocations.codeLocationFromClass(storyClass)) .withDefaultFormats().withFormats(TXT, HTML, XML).build(storyPath);
The builder is configured to build with the
Format.STATS
as default format. To change the default formats the user can override the method:new StoryReporterBuilder() { protected StoryReporterBuilder withDefaultFormats() { return withFormats(STATS); } }
The builder configures the file-based reporters to output to the default file directory
FilePrintStreamFactory.FileConfiguration.RELATIVE_DIRECTORY
as relative to the code location. In some case, e.g. with Ant class loader, the code source location from class may not be properly set. In this case, we may specify it from a file:new StoryReporterBuilder() .withCodeLocation( CodeLocations.codeLocationFromFile(new File("target/classes"))) .withDefaultFormats().withFormats(TXT, HTML, XML).build(storyPath);
By default, the reporters will output minimal failure information, the single line describing the failure cause and the outcomes if failures occur. To configure the failure trace to be reported as well:
new StoryReporterBuilder().withFailureTrace(true)
If failure trace is reported, it is with the full stack trace. In some cases, it's useful to have it compressed, eliminating unnecessary lines that are not very informative:
new StoryReporterBuilder().withFailureTraceCompression(true)
To specify the use of keywords for a given locale:
new StoryReporterBuilder().withKeywords(new LocalisedKeywords(Locale.IT)
The builder provides default instances for all reporters, using the default output patterns. To change the reporter for a specific instance, e.g. to report format TXT to .text files and to inject other non-default parameters, such as the custom output patterns:
new StoryReporterBuilder() { public StoryReporter reporterFor(String storyPath, Format format) { FilePrintStreamFactory factory = new FilePrintStreamFactory(new StoryLocation(storyPath, codeLocation)); switch (format) { case TXT: factory.useConfiguration(new FileConfiguration("text")); Properties customPatterns = new Properties(); customPatterns.setProperty("successful", "{0}(YEAH!!!)\n"); return new TxtOutput(factory.createPrintStream(), customPatterns, keywords); default: return super.reporterFor(format); } }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
StoryReporterBuilder.ProvidedFormat
A Format that wraps a StoryReporter instance provided.
-
Field Summary
Fields Modifier and Type Field Description protected URL
codeLocation
protected SGRCodes
codes
protected boolean
compressFailureTrace
protected Configuration
configuration
protected Keywords
keywords
protected boolean
multiThreading
protected FilePrintStreamFactory.FilePathResolver
pathResolver
protected String
relativeDirectory
protected boolean
reportFailureTrace
protected SurefireReporter
surefireReporter
protected Properties
viewResources
-
Constructor Summary
Constructors Constructor Description StoryReporterBuilder()
StoryReporterBuilder(Configuration configuration)
-
Method Summary
-
-
-
Field Detail
-
relativeDirectory
protected String relativeDirectory
-
pathResolver
protected FilePrintStreamFactory.FilePathResolver pathResolver
-
codeLocation
protected URL codeLocation
-
viewResources
protected Properties viewResources
-
reportFailureTrace
protected boolean reportFailureTrace
-
compressFailureTrace
protected boolean compressFailureTrace
-
keywords
protected Keywords keywords
-
codes
protected SGRCodes codes
-
surefireReporter
protected SurefireReporter surefireReporter
-
multiThreading
protected boolean multiThreading
-
configuration
protected Configuration configuration
-
-
Constructor Detail
-
StoryReporterBuilder
public StoryReporterBuilder()
-
StoryReporterBuilder
public StoryReporterBuilder(Configuration configuration)
-
-
Method Detail
-
outputDirectory
public File outputDirectory()
-
relativeDirectory
public String relativeDirectory()
-
pathResolver
public FilePrintStreamFactory.FilePathResolver pathResolver()
-
codeLocation
public URL codeLocation()
-
keywords
public Keywords keywords()
-
codes
public SGRCodes codes()
-
multiThreading
public boolean multiThreading()
-
reportFailureTrace
public boolean reportFailureTrace()
-
compressFailureTrace
public boolean compressFailureTrace()
-
viewResources
public Properties viewResources()
-
withRelativeDirectory
public StoryReporterBuilder withRelativeDirectory(String relativeDirectory)
-
withPathResolver
public StoryReporterBuilder withPathResolver(FilePrintStreamFactory.FilePathResolver pathResolver)
-
withCodeLocation
public StoryReporterBuilder withCodeLocation(URL codeLocation)
-
surefireReporter
public SurefireReporter surefireReporter()
-
hasSurefireReporter
public boolean hasSurefireReporter()
-
withSurefireReporter
public StoryReporterBuilder withSurefireReporter(SurefireReporter surefireReporter)
-
withDefaultFormats
public StoryReporterBuilder withDefaultFormats()
-
withFormats
public StoryReporterBuilder withFormats(Format... formats)
-
withReporters
public StoryReporterBuilder withReporters(StoryReporter... reporters)
-
withFailureTrace
public StoryReporterBuilder withFailureTrace(boolean reportFailureTrace)
-
withFailureTraceCompression
public StoryReporterBuilder withFailureTraceCompression(boolean compressFailureTrace)
-
withKeywords
public StoryReporterBuilder withKeywords(Keywords keywords)
-
withCodes
public StoryReporterBuilder withCodes(SGRCodes codes)
-
withMultiThreading
public StoryReporterBuilder withMultiThreading(boolean multiThreading)
-
withViewResources
public StoryReporterBuilder withViewResources(Properties resources)
-
build
public StoryReporter build(String storyPath)
-
build
public Map<String,StoryReporter> build(List<String> storyPaths)
-
reporterFor
public StoryReporter reporterFor(String storyPath, Format format)
-
filePrintStreamFactory
protected FilePrintStreamFactory filePrintStreamFactory(String storyPath)
-
fileConfiguration
public FilePrintStreamFactory.FileConfiguration fileConfiguration(String extension)
-
-