Example #1
0
  /** {@inheritDoc} */
  @Override
  public void testStarted(final TestCase tc, final String version) {
    if (reportDoc == null) {
      reportDoc = new IRXMLDocument();
      reportDoc.setName(version);
    }

    remoteAppender.clear();
    localAppender.clear();
    resourceAppender.clear();
    currentTestCase = tc;
    currentTestStartTime = System.currentTimeMillis();
  }
Example #2
0
  /** {@inheritDoc} */
  @Override
  public void testStopped(final Result result) {
    LOGGER.info("result is : ---- " + result.getAssert() + " ----");
    long cost = System.currentTimeMillis() - currentTestStartTime;

    ResultItem item = new ResultItem();
    item.id = currentTestCase.getId();
    item.res = result.getAssert();
    item.notes = result.getReason();
    item.costInMS = cost;
    item.spec = currentTestCase.getSpecSection();
    item.desc = currentTestCase.getDescription();

    String prefix = "" + currentTestCase.getId() + ".";

    if (result.getAssert() != TestResult.SKIP) {
      final PatternLayout layout = new PatternLayout();
      layout.setConversionPattern("%6r [%-20.20t] %-5p %30.30c (%6L) %x %m%n");
      final File remoteFile = new File(reportDir, prefix + "remote.log");
      final File localFile = new File(reportDir, prefix + "local.log");
      final File resourceFile = new File(reportDir, prefix + "resource.log");
      try {
        remoteAppender.writeToFile(layout, remoteFile);
        item.remoteLogURI = "file:" + remoteFile.getName();
        boolean hasError = remoteAppender.hasErrorLevelEvent();
        item.hasErrorLevelLog = Boolean.toString(hasError);
        localAppender.writeToFile(layout, localFile);
        item.localLogURI = "file:" + localFile.getName();
        resourceAppender.writeToFile(layout, resourceFile);
        item.resourceLog = filterReturn(resourceAppender);
      } catch (IOException e) {
        LOGGER.error(e.getMessage(), e);
        return;
      }
    }

    reportDoc.add(item);
    currentTestCase = null;

    // write to file.
    final File report = new File(reportDir, reportName);
    try {
      LOGGER.info("writing report to: '" + report.getCanonicalPath() + "'");
      writeReport(report);
    } catch (IOException e) {
      LOGGER.error("error writing the report", e);
    }
  }
Example #3
0
 /** Constructs a new object. */
 public TestRecorder() {
   remoteAppender = new SystemTestAppender();
   final LoggerNameFilter filter = new LoggerNameFilter();
   filter.setName("org.jvoicexml.systemtest");
   remoteAppender.addFilter(filter);
   final Logger jvxmlLogger = Logger.getLogger("org.jvoicexml");
   jvxmlLogger.addAppender(remoteAppender);
   localAppender = new SystemTestAppender();
   final Logger systemtestLogger = Logger.getLogger("org.jvoicexml.systemtest");
   systemtestLogger.addAppender(localAppender);
   resourceAppender = new SystemTestAppender();
   final Logger resourceLogger = Logger.getLogger("org.jvoicexml.implementation.pool");
   resourceLogger.addAppender(resourceAppender);
 }
Example #4
0
 /**
  * Filters the resource pool info from the message of the given appender.
  *
  * @param appender resource appender
  * @return filtered pool size info
  * @since 0.7.4
  */
 private String filterReturn(final SystemTestAppender appender) {
   List<LoggingEvent> events = new java.util.ArrayList<LoggingEvent>();
   events.addAll(appender.getEvents());
   final StringBuilder str = new StringBuilder();
   final String lf = System.getProperty("line.separator");
   for (LoggingEvent event : events) {
     String message = (String) event.getMessage();
     int end = message.indexOf(" after return");
     if (end < 0) {
       continue;
     }
     message = message.substring("pool has now ".length(), end);
     message = message.replaceAll("for key 'text' .org.jvoicexml.implementation.text.", "(");
     str.append(message);
     str.append(lf);
   }
   return str.toString();
 }