public static File getReportsDirectory(Settings settings, Project project) { File dir = getReportsDirectoryFromProperty(settings, project); if (dir == null) { dir = getReportsDirectoryFromPluginConfiguration(project); } if (dir == null) { dir = getReportsDirectoryFromDefaultConfiguration(project); } return dir; }
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(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); }
@Override public void analyse(Project project, SensorContext context) { File dir = SurefireUtils.getReportsDirectory(settings, fs, pathResolver); collect(context, dir); }
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()); } } } }
public static File getReportsDirectory(Settings settings, FileSystem fs, PathResolver pathResolver) { File dir = getReportsDirectoryFromProperty(settings, fs, pathResolver); if (dir == null) { dir = new File(fs.baseDir(), "target/surefire-reports"); } return dir; }
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; }
@CheckForNull private static File getReportsDirectoryFromDeprecatedProperty(Configuration settings, FileSystem fs, PathResolver pathResolver) { if(settings.hasKey(SUREFIRE_REPORTS_PATH_PROPERTY)) { String path = settings.get(SUREFIRE_REPORTS_PATH_PROPERTY).orElse(null); if (path != null) { return getFileFromPath(fs, pathResolver, path); } } return null; }
@Override public void execute(SensorContext context) { List<File> dirs = SurefireUtils.getReportsDirectories(settings, fs, pathResolver); collect(context, dirs); }
public static File getReportsDirectory(Project project) { File dir = getReportsDirectoryFromProperty(project); if (dir == null) { dir = getReportsDirectoryFromPluginConfiguration(project); } if (dir == null) { dir = getReportsDirectoryFromDefaultConfiguration(project); } return dir; }
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); } }
@Override public void analyse(Project project, SensorContext context) { File dir = SurefireUtils.getReportsDirectory(settings, project); collect(project, context, dir); }
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; }
@CheckForNull private static File getReportsDirectoryFromDeprecatedProperty(Configuration settings, FileSystem fs, PathResolver pathResolver) { if(settings.hasKey(SUREFIRE_REPORTS_PATH_PROPERTY)) { String path = settings.get(SUREFIRE_REPORTS_PATH_PROPERTY).orElse(null); if (path != null) { return getFileFromPath(fs, pathResolver, path); } } return null; }
@Override public void execute(SensorContext context) { List<File> dirs = SurefireUtils.getReportsDirectories(settings, fs, pathResolver); collect(context, dirs); }
public void analyse(Project project, SensorContext context) { File dir = SurefireUtils.getReportsDirectory(project); collect(project, context, dir); }
@CheckForNull private static List<File> getReportsDirectoriesFromProperty(Configuration settings, FileSystem fs, PathResolver pathResolver) { if(settings.hasKey(SUREFIRE_REPORT_PATHS_PROPERTY)) { return Arrays.stream(settings.getStringArray(SUREFIRE_REPORT_PATHS_PROPERTY)) .map(String::trim) .map(path -> getFileFromPath(fs, pathResolver, path)) .filter(Objects::nonNull) .collect(Collectors.toList()); } return null; }
@CheckForNull private static List<File> getReportsDirectoriesFromProperty(Configuration settings, FileSystem fs, PathResolver pathResolver) { if(settings.hasKey(SUREFIRE_REPORT_PATHS_PROPERTY)) { return Arrays.stream(settings.getStringArray(SUREFIRE_REPORT_PATHS_PROPERTY)) .map(String::trim) .map(path -> getFileFromPath(fs, pathResolver, path)) .filter(Objects::nonNull) .collect(Collectors.toList()); } return null; }