/** Write the junit report xml file. */
  private void writeJunitReportToFile() {
    try {
      final String directory = String.valueOf(targetDirectory) + "/surefire-reports";
      FileUtils.forceMkdir(new File(directory));
      final StringBuilder b =
          new StringBuilder(directory)
              .append("/TEST-")
              .append(DeviceHelper.getDescriptiveName(device));

      if (StringUtils.isNotBlank(reportSuffix)) {
        // Safety first
        b.append(reportSuffix.replace("/", "").replace("\\", ""));
      }

      final File reportFile = new File(b.append(".xml").toString());
      final JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
      final Marshaller marshaller = jaxbContext.createMarshaller();
      marshaller.marshal(report, reportFile);

      getLog().info(deviceLogLinePrefix + "Report file written to " + reportFile.getAbsolutePath());
    } catch (IOException e) {
      threwException = true;
      exceptionMessages.append("Failed to write test report file");
      exceptionMessages.append(e.getMessage());
    } catch (JAXBException e) {
      threwException = true;
      exceptionMessages.append("Failed to create jaxb context");
      exceptionMessages.append(e.getMessage());
    }
  }