- Revision
- 1405
- Author
- paul
- Date
- 2009-12-11 22:52:29 -0600 (Fri, 11 Dec 2009)
Log Message
html output to right directory now, one file per scenario
Modified Paths
- trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/TraderScenario.java
- trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/TraderIsAlertedOfStatus.java
- trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/TraderSellsAllStocks.java
- trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/WildcardSearch.java
- trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/FilePrintStreamFactory.java
- trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/HtmlPrintStreamScenarioReporter.java
- trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/PrintStreamFactory.java
Diff
Modified: trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/TraderScenario.java (1404 => 1405)
--- trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/TraderScenario.java 2009-12-11 07:54:16 UTC (rev 1404) +++ trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/TraderScenario.java 2009-12-12 04:52:29 UTC (rev 1405) @@ -12,22 +12,23 @@ import org.jbehave.scenario.reporters.PrintStreamScenarioReporter; import org.jbehave.scenario.reporters.ScenarioReporter; +import java.io.File; public class TraderScenario extends JUnitScenario { - public TraderScenario() { + public TraderScenario(final Class thisClass) { super(new PropertyBasedConfiguration() { @Override public ScenarioDefiner forDefiningScenarios() { return new ClasspathScenarioDefiner(new UnderscoredCamelCaseResolver(".scenario"), new PatternScenarioParser(this)); } - @Override - public ScenarioReporter forReportingScenarios() { - return new CollectingScenarioReporter(new PrintStreamScenarioReporter(), new HtmlPrintStreamScenarioReporter(new FilePrintStreamFactory())); - } - - }, new TraderSteps()); + @Override + public ScenarioReporter forReportingScenarios() { + return new CollectingScenarioReporter(new PrintStreamScenarioReporter(), new HtmlPrintStreamScenarioReporter(new FilePrintStreamFactory(thisClass))); + } + + }, new TraderSteps()); } }
Modified: trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/TraderIsAlertedOfStatus.java (1404 => 1405)
--- trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/TraderIsAlertedOfStatus.java 2009-12-11 07:54:16 UTC (rev 1404) +++ trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/TraderIsAlertedOfStatus.java 2009-12-12 04:52:29 UTC (rev 1405) @@ -5,6 +5,8 @@ public class TraderIsAlertedOfStatus extends TraderScenario { public TraderIsAlertedOfStatus() { + super(TraderIsAlertedOfStatus.class); } + }
Modified: trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/TraderSellsAllStocks.java (1404 => 1405)
--- trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/TraderSellsAllStocks.java 2009-12-11 07:54:16 UTC (rev 1404) +++ trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/TraderSellsAllStocks.java 2009-12-12 04:52:29 UTC (rev 1405) @@ -5,6 +5,7 @@ public class TraderSellsAllStocks extends TraderScenario { public TraderSellsAllStocks() { + super(TraderSellsAllStocks.class); } - + }
Modified: trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/WildcardSearch.java (1404 => 1405)
--- trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/WildcardSearch.java 2009-12-11 07:54:16 UTC (rev 1404) +++ trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/WildcardSearch.java 2009-12-12 04:52:29 UTC (rev 1405) @@ -5,6 +5,7 @@ public class WildcardSearch extends TraderScenario { public WildcardSearch() { + super(WildcardSearch.class); } }
Modified: trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/FilePrintStreamFactory.java (1404 => 1405)
--- trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/FilePrintStreamFactory.java 2009-12-11 07:54:16 UTC (rev 1404) +++ trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/FilePrintStreamFactory.java 2009-12-12 04:52:29 UTC (rev 1405) @@ -2,6 +2,7 @@ import java.io.File; import java.io.FileNotFoundException; +import java.io.FileOutputStream; import java.io.PrintStream; /** @@ -10,31 +11,36 @@ */ public class FilePrintStreamFactory implements PrintStreamFactory { - private static final File DEFAULT_DIRECTORY = new File("target", "scenario-reports"); private static final String HTML = "html"; - private final File directory; - private final String extension; + private PrintStream printStream; - public FilePrintStreamFactory() { - this(DEFAULT_DIRECTORY, HTML); + + public FilePrintStreamFactory(Class<?> scenarioClass) { + this(scenarioClass, HTML); } - public FilePrintStreamFactory(File directory, String extension) { - this.directory = directory; - this.extension = extension; + public FilePrintStreamFactory(Class<?> scenarioClass, String fileSuffix) { + this(makeDefaultOutputDirectory(scenarioClass), scenarioClass.getName() + "." + fileSuffix); } - public PrintStream createPrintStream(String storyName) { + public FilePrintStreamFactory(File outputDirectory, String fileName) { + outputDirectory.mkdirs(); try { - return new PrintStream(fileFor(directory, storyName, extension)); + printStream = new PrintStream(new FileOutputStream(new File(outputDirectory, fileName), true)); } catch (FileNotFoundException e) { throw new RuntimeException(e); } } - private File fileFor(File dir, String name, String ext) { - dir.mkdirs(); - return new File(dir, name + "." + ext); + public PrintStream getPrintStream(String storyName) { + return printStream; } + public static File makeDefaultOutputDirectory(Class<?> scenarioClass) { + String classesDir = scenarioClass.getProtectionDomain().getCodeSource().getLocation().getFile(); + File targetDirectory = new File(classesDir).getParentFile(); + return new File(targetDirectory, "scenario-reports"); + } + + }
Modified: trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/HtmlPrintStreamScenarioReporter.java (1404 => 1405)
--- trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/HtmlPrintStreamScenarioReporter.java 2009-12-11 07:54:16 UTC (rev 1404) +++ trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/HtmlPrintStreamScenarioReporter.java 2009-12-12 04:52:29 UTC (rev 1405) @@ -27,62 +27,67 @@ public HtmlPrintStreamScenarioReporter(PrintStreamFactory printStreamFactory) { this.printStreamFactory = printStreamFactory; - usePrintStream(printStreamFactory.createPrintStream("Story")); + usePrintStream(printStreamFactory.getPrintStream("Story")); } public void successful(String step) { String defaultPattern = "<div class=\"step.successful\">{0}</div>\n"; - output.print(format("successful.html", defaultPattern, escapeHtml(step))); + String s = format("successful.html", defaultPattern, escapeHtml(step)); + prt(s); } + private void prt(String s) { + output.print(s); + } + public void pending(String step) { String defaultPattern = "<div class=\"step.pending\">{0}<span class=\"keyword.pending\">({1})</span></div>\n"; - output.print(format("pending.html", defaultPattern, escapeHtml(step), keywords.pending())); + prt(format("pending.html", defaultPattern, escapeHtml(step), keywords.pending())); } public void notPerformed(String step) { String defaultPattern = "<div class=\"step.notPerformed\">{0}<span class=\"keyword.notPerformed\">({1})</span></div>\n"; - output.print(format("notPerformed.html", defaultPattern, escapeHtml(step), keywords.notPerformed())); + prt(format("notPerformed.html", defaultPattern, escapeHtml(step), keywords.notPerformed())); } public void failed(String step, Throwable cause) { this.cause = cause; String defaultPattern = "<div class=\"step.failed\">{0}<span class=\"keyword.failed\">({1})</span></div>\n"; - output.print(format("failed.html", defaultPattern, escapeHtml(step), keywords.failed())); + prt(format("failed.html", defaultPattern, escapeHtml(step), keywords.failed())); } public void beforeStory(StoryDefinition story, boolean embeddedStory) { - usePrintStream(printStreamFactory.createPrintStream(story.getName())); + usePrintStream(printStreamFactory.getPrintStream(story.getName())); beforeStory(story.getBlurb()); } public void beforeStory(Blurb blurb) { String defaultPattern = "<div class=\"story\">\n<h1>{0}</h1>\n"; - output.print(format("beforeStory.html", defaultPattern, blurb.asString())); + prt(format("beforeStory.html", defaultPattern, blurb.asString())); } public void afterStory(boolean embeddedStory) { - output.print(format("afterStory.html", "</div>\n")); + prt(format("afterStory.html", "</div>\n")); } public void beforeScenario(String title) { cause = null; String defaultPattern = "<div class=\"scenario\">\n<h2>{0} {1}</h2>\n"; - output.print(format("beforeScenario.html", defaultPattern, keywords.scenario(), escapeHtml(title))); + prt(format("beforeScenario.html", defaultPattern, keywords.scenario(), escapeHtml(title))); } public void afterScenario() { - output.print(format("afterScenario.html", "</div>\n")); + prt(format("afterScenario.html", "</div>\n")); } public void givenScenarios(List<String> givenScenarios) { String defaultPattern = "<span class=\"givenScenarios\">{0} {1}</span>\n"; - output.print(format("givenScenarios.html", defaultPattern, keywords.givenScenarios(), escapeHtml(givenScenarios.toString()))); + prt(format("givenScenarios.html", defaultPattern, keywords.givenScenarios(), escapeHtml(givenScenarios.toString()))); } public void examplesTable(ExamplesTable table) { String defaultPattern = "<h3 class=\"examplesTable\">{0}</h3>\n<table class=\"examplesTable\">\n"; - output.print(format("examplesTable.html", defaultPattern, keywords.examplesTable())); + prt(format("examplesTable.html", defaultPattern, keywords.examplesTable())); final List<Map<String, String>> rows = table.getRows(); final Set<String> columnNames = rows.get(0).keySet(); output.println("<thead>\n<tr>"); @@ -104,7 +109,7 @@ public void examplesTableRow(Map<String, String> tableRow) { String defaultPattern = "\n<h3 class=\"examplesTableRow\">{0} {1}</h3>\n"; - output.print(format("examplesTableRow.html", defaultPattern, keywords.examplesTableRow(), escapeHtml(tableRow.toString()))); + prt(format("examplesTableRow.html", defaultPattern, keywords.examplesTableRow(), escapeHtml(tableRow.toString()))); } }
Modified: trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/PrintStreamFactory.java (1404 => 1405)
--- trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/PrintStreamFactory.java 2009-12-11 07:54:16 UTC (rev 1404) +++ trunk/core/jbehave-core/src/java/org/jbehave/scenario/reporters/PrintStreamFactory.java 2009-12-12 04:52:29 UTC (rev 1405) @@ -7,6 +7,6 @@ */ public interface PrintStreamFactory { - PrintStream createPrintStream(String storyName); + PrintStream getPrintStream(String storyName); }
To unsubscribe from this list please visit: