Class StoryReporterBuilder
A Builder for
StoryReporters. It builds a DelegatingStoryReporter with
delegates for a number of formats - mostly file-based ones except
. It requires a
FilePrintStreamFactory 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 ClassesModifier and TypeClassDescriptionstatic classA Format that wraps a StoryReporter instance provided. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected URLprotected SGRCodesprotected booleanprotected Configurationprotected Keywordsprotected booleanprotected FilePrintStreamFactory.FilePathResolverprotected Stringprotected booleanprotected SurefireReporterprotected Properties -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncodes()booleanfileConfiguration(String extension) protected FilePrintStreamFactoryfilePrintStreamFactory(String storyPath) formatNames(boolean toLowerCase) formats()booleankeywords()booleanreporterFor(String storyPath, Format format) booleanwithCodeLocation(URL codeLocation) withFailureTrace(boolean reportFailureTrace) withFailureTraceCompression(boolean compressFailureTrace) withFormats(Format... formats) withKeywords(Keywords keywords) withMultiThreading(boolean multiThreading) withPathResolver(FilePrintStreamFactory.FilePathResolver pathResolver) withRelativeDirectory(String relativeDirectory) withReporters(StoryReporter... reporters) withSurefireReporter(SurefireReporter surefireReporter) withViewResources(Properties resources)
-
Field Details
-
relativeDirectory
-
pathResolver
-
codeLocation
-
viewResources
-
reportFailureTrace
protected boolean reportFailureTrace -
compressFailureTrace
protected boolean compressFailureTrace -
keywords
-
codes
-
surefireReporter
-
multiThreading
protected boolean multiThreading -
configuration
-
-
Constructor Details
-
StoryReporterBuilder
public StoryReporterBuilder() -
StoryReporterBuilder
-
-
Method Details
-
outputDirectory
-
relativeDirectory
-
pathResolver
-
codeLocation
-
formats
-
formatNames
-
keywords
-
codes
-
multiThreading
public boolean multiThreading() -
reportFailureTrace
public boolean reportFailureTrace() -
compressFailureTrace
public boolean compressFailureTrace() -
viewResources
-
withRelativeDirectory
-
withPathResolver
-
withCodeLocation
-
surefireReporter
-
hasSurefireReporter
public boolean hasSurefireReporter() -
withSurefireReporter
-
withDefaultFormats
-
withFormats
-
withReporters
-
withFailureTrace
-
withFailureTraceCompression
-
withKeywords
-
withCodes
-
withMultiThreading
-
withViewResources
-
build
-
build
-
reporterFor
-
filePrintStreamFactory
-
fileConfiguration
-