org.testng.reporters.jq.ChronologicalPanel Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of testng Show documentation
Show all versions of testng Show documentation
Testing framework for Java
package org.testng.reporters.jq;
import org.testng.IInvokedMethod;
import org.testng.ISuite;
import org.testng.ITestNGMethod;
import org.testng.ITestResult;
import org.testng.reporters.XMLStringBuffer;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class ChronologicalPanel extends BaseMultiSuitePanel {
public ChronologicalPanel(Model model) {
super(model);
}
@Override
public String getPrefix() {
return "chronological-";
}
@Override
public String getHeader(ISuite suite) {
return "Methods in chronological order";
}
@Override
public String getContent(ISuite suite, XMLStringBuffer main) {
XMLStringBuffer xsb = new XMLStringBuffer(main.getCurrentIndent());
List invokedMethods = suite.getAllInvokedMethods();
Collections.sort(invokedMethods, new Comparator() {
@Override
public int compare(IInvokedMethod arg0, IInvokedMethod arg1) {
return (int)
(arg0.getTestResult().getStartMillis() - arg1.getTestResult().getStartMillis());
}
});
String currentClass = "";
long start = 0;
for (IInvokedMethod im : invokedMethods) {
ITestNGMethod m = im.getTestMethod();
// for (ITestResult tr : results) {
// ITestNGMethod m = tr.getMethod();
String cls = "test-method";
if (m.isBeforeSuiteConfiguration()) {
cls = "configuration-suite before";
} else if (m.isAfterSuiteConfiguration()) {
cls = "configuration-suite after";
} else if (m.isBeforeTestConfiguration()) {
cls = "configuration-test before";
} else if (m.isAfterTestConfiguration()) {
cls = "configuration-test after";
} else if (m.isBeforeClassConfiguration()) {
cls = "configuration-class before";
} else if (m.isAfterClassConfiguration()) {
cls = "configuration-class after";
} else if (m.isBeforeMethodConfiguration()) {
cls = "configuration-method before";
} else if (m.isAfterMethodConfiguration()) {
cls = "configuration-method after";
}
ITestResult tr = im.getTestResult();
String methodName = Model.getTestResultName(tr);
if (!m.getTestClass().getName().equals(currentClass)) {
if (!"".equals(currentClass)) {
xsb.pop(D);
}
xsb.push(D, C, "chronological-class");
xsb.addRequired(D, m.getTestClass().getName(), C, "chronological-class-name");
currentClass = m.getTestClass().getName();
}
xsb.push(D, C, cls);
if (tr.getStatus() == ITestResult.FAILURE) {
xsb.push("img", "src", Model.getImage("failed"));
xsb.pop("img");
}
// No need to check for skipped methods since by definition, they were never
// invoked.
xsb.addRequired(S, methodName, C, "method-name");
if (start == 0) {
start = tr.getStartMillis();
}
xsb.addRequired(S, Long.toString(tr.getStartMillis() - start) + " ms", C, "method-start");
xsb.pop(D);
}
return xsb.toXML();
}
@Override
public String getNavigatorLink(ISuite suite) {
return "Chronological view";
}
}