Code with Finding: |
class EmailableReporter2 { /** * Writes the scenario summary for the results of a given state for a single * test. */ private int writeScenarioSummary(String description, List<ClassResult> classResults, String cssClassPrefix, int startingScenarioIndex) { int scenarioCount = 0; if (!classResults.isEmpty()) { writer.print("<tr><th colspan=\"4\">"); writer.print(description); writer.print("</th></tr>");
int scenarioIndex = startingScenarioIndex; int classIndex = 0; for (ClassResult classResult : classResults) { String cssClass = cssClassPrefix + ((classIndex % 2) == 0 ? "even" : "odd");
buffer.setLength(0);
int scenariosPerClass = 0; int methodIndex = 0; for (MethodResult methodResult : classResult.getMethodResults()) { List<ITestResult> results = methodResult.getResults(); int resultsCount = results.size(); assert resultsCount > 0;
ITestResult firstResult = results.iterator().next(); String methodName = Utils.escapeHtml(firstResult .getMethod().getMethodName()); long start = firstResult.getStartMillis(); long duration = firstResult.getEndMillis() - start;
// The first method per class shares a row with the class // header if (methodIndex > 0) { buffer.append("<tr class=\"").append(cssClass) .append("\">");
}
// Write the timing information with the first scenario per // method buffer.append("<td><a href=\"#m").append(scenarioIndex) .append("\">").append(methodName) .append("</a></td>").append("<td rowspan=\"") .append(resultsCount).append("\">").append(start) .append("</td>").append("<td rowspan=\"") .append(resultsCount).append("\">") .append(duration).append("</td></tr>"); scenarioIndex++;
// Write the remaining scenarios for the method for (int i = 1; i < resultsCount; i++) { buffer.append("<tr class=\"").append(cssClass) .append("\">").append("<td><a href=\"#m") .append(scenarioIndex).append("\">") .append(methodName).append("</a></td></tr>"); scenarioIndex++; }
scenariosPerClass += resultsCount; methodIndex++; }
// Write the test results for the class writer.print("<tr class=\""); writer.print(cssClass); writer.print("\">"); writer.print("<td rowspan=\""); writer.print(scenariosPerClass); writer.print("\">"); writer.print(Utils.escapeHtml(classResult.getClassName())); writer.print("</td>"); writer.print(buffer);
classIndex++; } scenarioCount = scenarioIndex - startingScenarioIndex; } return scenarioCount; }
}
|