public String getTotalCoveragePercentAsString(){ return getTotalCoveragePercent() + "%"; }
@Override public void readSupportedParameter(final String scriptName, final String parameterType, final String parameterName) { parametersCounter.readSupported(parameterType); }
public void generateJsonReport(final ProjectType projectType, final String statusCode) { final ImmutableStatistics.Builder statisticsBuilder = ImmutableStatistics.builder() .projectType(projectType.getName()) .scriptCount(totalScriptNumber) .statusCode(statusCode) .durationInMillis(totalDurationInMills) .conversionRatePercent(functionsCounter.getTotalCoveragePercent()) .supportedFunctionsNoWarnCount(functionsCounter.getSupportedFunctionsNoWarnCount()) .supportedFunctionsWarnCount(functionsCounter.getSupportedFunctionsWarnCount()) .unsupportedFunctionsCount(functionsCounter.getUnsupportedFunctionsCount()); functionsCounter.getTotalOccurencePerName().entrySet().stream() .map(e -> ImmutableFunctionStat.builder().name(e.getKey()).count(e.getValue()).build()) .forEach(statisticsBuilder::addUnsupportedFunctions); final Statistics statistics = statisticsBuilder.build(); final Gson gson = new GsonBuilder() .registerTypeAdapterFactory(new GsonAdaptersFunctionStat()) .registerTypeAdapterFactory(new GsonAdaptersStatistics()) .create(); final String reportFileName = destFolder + File.separator + nlProjectName + File.separator + "statistics.json"; new File(reportFileName).getParentFile().mkdirs(); try (final Writer writer = new FileWriter(reportFileName)) { gson.toJson(statistics, writer); } catch (final IOException e) { LIVE_OUT.error("Error while generating JSON report.", e); } }
@VisibleForTesting String newSummary() { final StringBuilder summaryBuilder = new StringBuilder(); summaryBuilder.append(System.lineSeparator()).append("***********").append(System.lineSeparator()) .append("* Summary *").append(System.lineSeparator()).append("***********").append(System.lineSeparator()); summaryBuilder.append("Start date: ").append(startDate).append(System.lineSeparator()); summaryBuilder.append("Reading duration: ").append(totalDurationInMills).append(" ms").append(System.lineSeparator()); summaryBuilder.append("Source folder: ").append(sourceFolder).append(System.lineSeparator()); summaryBuilder.append("Destination folder: ").append(destFolder).append(System.lineSeparator()); summaryBuilder.append("NeoLoad project: ").append(nlProjectName).append(System.lineSeparator()); summaryBuilder.append("Log files: ").append(StringUtils.join(logFiles.get(), ", ")).append(System.lineSeparator()); summaryBuilder.append("Total script number: ").append(totalScriptNumber).append(System.lineSeparator()); summaryBuilder.append("Coverage: ").append(functionsCounter.getTotalCoveragePercentAsString()).append(System.lineSeparator()); summaryBuilder.append("Total actions: \n").append(actionsCounter.getTotalSummary()); summaryBuilder.append("Total functions: \n").append(functionsCounter.getTotalSummary()); summaryBuilder.append("Total parameters: \n").append(parametersCounter.getTotalSummary()); return summaryBuilder.toString(); }
@Override public void startScript(final String scriptPath) { // Reset current script info currentScriptStartTime = (new Date()).getTime(); functionsCounter.nextScript(); parametersCounter.nextScript(); final String message = "Converting script: " + (new File(scriptPath)).getName(); LIVE_OUT.info(message); FUNCTIONAL_OUT.info(message); }
@Override public void endScript() { final long duration = (new Date()).getTime() - currentScriptStartTime; LIVE_OUT.info("Done in " + duration + " ms. Functions " + functionsCounter.getCurrentSummary()); }
@Override public void readSupportedAction(final String actionName) { actionsCounter.readSupported(actionName); }
@Override public void readSupportedFunction(final String scriptName, final String functionName, final Integer lineNumber) { functionsCounter.readSupported(functionName); }