private File[] getReports(File dir) { if (dir == null || !dir.isDirectory() || !dir.exists()) { return new File[0]; } File[] unitTestResultFiles = findXMLFilesStartingWith(dir, "TEST-"); if (unitTestResultFiles.length == 0) { // maybe there's only a test suite result file unitTestResultFiles = findXMLFilesStartingWith(dir, "TESTS-"); } return unitTestResultFiles; }
public void collect(Project project, SensorContext context, File reportsDir) { File[] xmlFiles = getReports(reportsDir); if (xmlFiles.length > 0) { parseFiles(context, xmlFiles); } }
private void parseFiles(SensorContext context, File[] reports) { UnitTestIndex index = new UnitTestIndex(); parseFiles(reports, index); sanitize(index); save(index, context); }
private void save(UnitTestIndex index, SensorContext context) { for (Map.Entry<String, UnitTestClassReport> entry : index.getIndexByClassname().entrySet()) { UnitTestClassReport report = entry.getValue(); if (report.getTests() > 0) { Resource resource = getUnitTestResource(entry.getKey()); double testsCount = report.getTests() - report.getSkipped(); saveMeasure(context, resource, CoreMetrics.SKIPPED_TESTS, report.getSkipped()); saveMeasure(context, resource, CoreMetrics.TESTS, testsCount); saveMeasure(context, resource, CoreMetrics.TEST_ERRORS, report.getErrors()); saveMeasure(context, resource, CoreMetrics.TEST_FAILURES, report.getFailures()); saveMeasure(context, resource, CoreMetrics.TEST_EXECUTION_TIME, report.getDurationMilliseconds()); double passedTests = testsCount - report.getErrors() - report.getFailures(); if (testsCount > 0) { double percentage = passedTests * 100d / testsCount; saveMeasure(context, resource, CoreMetrics.TEST_SUCCESS_DENSITY, ParsingUtils.scaleValue(percentage)); } saveResults(context, resource, report); } } }
private void save(UnitTestIndex index, SensorContext context) { for (Map.Entry<String, UnitTestClassReport> entry : index.getIndexByClassname().entrySet()) { UnitTestClassReport report = entry.getValue(); if (report.getTests() > 0) { Resource resource = getUnitTestResource(entry.getKey()); if (resource != null) { save(entry.getValue(), resource, context); } else { LOGGER.warn("Resource not found: {}", entry.getKey()); } } } }
private void save(UnitTestClassReport report, Resource resource, SensorContext context) { double testsCount = report.getTests() - report.getSkipped(); saveMeasure(context, resource, CoreMetrics.SKIPPED_TESTS, report.getSkipped()); saveMeasure(context, resource, CoreMetrics.TESTS, testsCount); saveMeasure(context, resource, CoreMetrics.TEST_ERRORS, report.getErrors()); saveMeasure(context, resource, CoreMetrics.TEST_FAILURES, report.getFailures()); saveMeasure(context, resource, CoreMetrics.TEST_EXECUTION_TIME, report.getDurationMilliseconds()); double passedTests = testsCount - report.getErrors() - report.getFailures(); if (testsCount > 0) { double percentage = passedTests * 100d / testsCount; saveMeasure(context, resource, CoreMetrics.TEST_SUCCESS_DENSITY, ParsingUtils.scaleValue(percentage)); } saveResults(context, resource, report); }
private void parseFiles(SensorContext context, File[] reports) { UnitTestIndex index = new UnitTestIndex(); parseFiles(reports, index); sanitize(index); save(index, context); }
public void collect(Project project, SensorContext context, File reportsDir) { File[] xmlFiles = getReports(reportsDir); if (xmlFiles.length == 0) { // See http://jira.codehaus.org/browse/SONAR-2371 if (project.getModules().isEmpty()) { context.saveMeasure(CoreMetrics.TESTS, 0.0); } } else { parseFiles(context, xmlFiles); } }
private File[] getReports(File dir) { if (dir == null) { return new File[0]; } else if (!dir.isDirectory()) { LOGGER.warn("Reports path not found: " + dir.getAbsolutePath()); return new File[0]; } File[] unitTestResultFiles = findXMLFilesStartingWith(dir, "TEST-"); if (unitTestResultFiles.length == 0) { // maybe there's only a test suite result file unitTestResultFiles = findXMLFilesStartingWith(dir, "TESTS-"); } return unitTestResultFiles; }