package fitnesse.responders.run; import java.io.IOException; import util.TimeMeasurement; import fitnesse.wiki.PageCrawler; import fitnesse.wiki.WikiPage; import fitnesse.FitNesseContext; import fitnesse.responders.run.formatters.XmlFormatter; public class SuiteXmlFormatter extends XmlFormatter { private TestSummary xmlPageCounts = new TestSummary(); public SuiteXmlFormatter(FitNesseContext context, WikiPage page, WriterFactory writerSource) { super(context, page, writerSource); } private void addFinalCounts() { testResponse.finalCounts = new TestSummary(); finalSummary.right = testResponse.finalCounts.right = xmlPageCounts.getRight(); finalSummary.wrong = testResponse.finalCounts.wrong = xmlPageCounts.getWrong(); finalSummary.ignores = testResponse.finalCounts.ignores = xmlPageCounts.getIgnores(); finalSummary.exceptions = testResponse.finalCounts.exceptions = xmlPageCounts.getExceptions(); } @Override public void testComplete(TestPage testPage, TestSummary testSummary, TimeMeasurement timeMeasurement) { PageCrawler pageCrawler = getPage().getPageCrawler(); String relativeName = pageCrawler.getRelativeName(getPage(), testPage.getSourcePage()); if ("".equals(relativeName)) relativeName = String.format("(%s)", testPage.getName()); processTestResults(relativeName, testSummary, timeMeasurement); xmlPageCounts.tallyPageCounts(ExecutionResult.getExecutionResult(relativeName, testSummary)); } @Override public void allTestingComplete(TimeMeasurement totalTimeMeasurement) throws IOException { addFinalCounts(); super.allTestingComplete(totalTimeMeasurement); } }