private void saveClassMeasure(SensorContext context, TestSuiteReport fileReport, Metric metric, double value) { if ( !Double.isNaN(value)) { String basename = fileReport.getClassKey().replace('.', '/'); // .m file context.saveMeasure(getUnitTestResource(basename + ".m"), metric, value); // Try .m file with + in name try { context.saveMeasure(getUnitTestResource(basename.replace('_', '+') + ".m"), metric, value); } catch (Exception e) { // Nothing : File was probably already registered successfully } } }
if ( !fileReport.isValid() || analyzedReports.contains(fileReport)) { continue; if (fileReport.getTests() > 0) { double testsCount = fileReport.getTests() - fileReport.getSkipped(); saveClassMeasure(context, fileReport, CoreMetrics.SKIPPED_TESTS, fileReport.getSkipped()); saveClassMeasure(context, fileReport, CoreMetrics.TESTS, testsCount); saveClassMeasure(context, fileReport, CoreMetrics.TEST_ERRORS, fileReport.getErrors()); saveClassMeasure(context, fileReport, CoreMetrics.TEST_FAILURES, fileReport.getFailures()); saveClassMeasure(context, fileReport, CoreMetrics.TEST_EXECUTION_TIME, fileReport.getTimeMS()); double passedTests = testsCount - fileReport.getErrors() - fileReport.getFailures(); if (testsCount > 0) { double percentage = passedTests * 100d / testsCount;
private void saveTestsDetails(SensorContext context, TestSuiteReport fileReport) throws TransformerException { StringBuilder testCaseDetails = new StringBuilder(256); testCaseDetails.append("<tests-details>"); List<TestCaseDetails> details = fileReport.getDetails(); for (TestCaseDetails detail : details) { testCaseDetails.append("<testcase status=\"").append(detail.getStatus()) .append("\" time=\"").append(detail.getTimeMS()) .append("\" name=\"").append(detail.getName()).append("\""); boolean isError = detail.getStatus().equals(TestCaseDetails.STATUS_ERROR); if (isError || detail.getStatus().equals(TestCaseDetails.STATUS_FAILURE)) { testCaseDetails.append(">") .append(isError ? "<error message=\"" : "<failure message=\"") .append(StringEscapeUtils.escapeXml(detail.getErrorMessage())).append("\">") .append("<![CDATA[").append(StringEscapeUtils.escapeXml(detail.getStackTrace())).append("]]>") .append(isError ? "</error>" : "</failure>").append("</testcase>"); } else { testCaseDetails.append("/>"); } } testCaseDetails.append("</tests-details>"); context.saveMeasure(getUnitTestResource(fileReport.getClassKey()), new Measure(CoreMetrics.TEST_DATA, testCaseDetails.toString())); }