| Code with Finding: |
class JqReporter {
private XMLStringBuffer generateSuites(List<XmlSuite> xmlSuites,
List<ISuite> suites, XMLStringBuffer main) {
for (ISuite suite : suites) {
if (suite.getResults().size() == 0) {
continue;
}
XMLStringBuffer xsb = new XMLStringBuffer(main.getCurrentIndent());
XMLStringBuffer header = new XMLStringBuffer(main.getCurrentIndent());
xsb.push(D, C, "suite-content");
Map<String, ISuiteResult> results = suite.getResults();
XMLStringBuffer xs1 = new XMLStringBuffer(xsb.getCurrentIndent());
XMLStringBuffer xs2 = new XMLStringBuffer(xsb.getCurrentIndent());
XMLStringBuffer xs3 = new XMLStringBuffer(xsb.getCurrentIndent());
int failed = 0;
int skipped = 0;
int passed = 0;
for (ISuiteResult result : results.values()) {
ITestContext context = result.getTestContext();
failed += context.getFailedTests().size();
generateTests("failed", context.getFailedTests(), context, xs1);
skipped += context.getSkippedTests().size();
generateTests("skipped", context.getSkippedTests(), context, xs2);
passed += context.getPassedTests().size();
generateTests("passed", context.getPassedTests(), context, xs3);
}
xsb.addOptional(D, "Failed" + " tests", C, "result-banner " + "failed");
xsb.addString(xs1.toXML());
xsb.addOptional(D, "Skipped" + " tests", C, "result-banner " + "skipped");
xsb.addString(xs2.toXML());
xsb.addOptional(D, "Passed" + " tests", C, "result-banner " + "passed");
xsb.addString(xs3.toXML());
header.push(D, C, "suite");
header.push(D, C, "suite-header");
header.addOptional(S, suite.getName(), C, "suite-name");
header.push(D, C, "stats");
int total = failed + skipped + passed;
String stats = String.format("%s, %d failed, %d skipped, %d passed",
pluralize(total, "method"), failed, skipped, passed);
header.push("ul");
// Method stats
header.push("li");
header.addOptional(S, stats, C, "method-stats");
header.pop("li");
// Tests
header.push("li");
header.addOptional(S, String.format("%s ", pluralize(results.values().size(), "test"),
C, "test-stats"));
header.pop("li");
// List of tests
header.push("ul");
for (ISuiteResult tr : results.values()) {
String testName = tr.getTestContext().getName();
header.push("li");
header.addOptional("a", testName, "href", "#" + m_testMap.get(testName));
header.pop("li");
}
header.pop("ul");
header.pop("ul");
header.pop(D);
header.pop(D);
main.addString(header.toXML());
main.addString(xsb.toXML());
}
return main;
}
}
class JqReporter {
private void generateMethod(String tagClass, ITestResult tr,
ITestContext context, XMLStringBuffer xsb) {
long time = tr.getEndMillis() - tr.getStartMillis();
xsb.push(D, C, "method");
xsb.push(D, C, "method-content");
xsb.addOptional(S, tr.getMethod().getMethodName(), C, "method-name");
// Parameters?
if (tr.getParameters().length > 0) {
StringBuilder sb = new StringBuilder();
boolean first = true;
for (Object p : tr.getParameters()) {
if (!first) sb.append(", ");
first = false;
sb.append(Utils.toString(p));
}
xsb.addOptional(S, "(" + sb.toString() + ")", C, "parameters");
}
// Exception?
if (tr.getThrowable() != null) {
StringBuilder stackTrace = new StringBuilder();
for (StackTraceElement str : tr.getThrowable().getStackTrace()) {
stackTrace.append(str.toString()).append("<br>");
}
xsb.addOptional(D, stackTrace.toString() + "\n",
C, "stack-trace");
}
xsb.addOptional(S, " " + Long.toString(time) + " ms", C, "method-time");
xsb.pop(D);
xsb.pop(D);
}
}
|