All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
org.testng.reporters.TextReporter Maven / Gradle / Ivy
package org.testng.reporters;
import static org.testng.internal.Utils.isStringNotBlank;
import org.testng.ITestContext;
import org.testng.ITestNGMethod;
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
import org.testng.internal.Utils;
import java.util.ArrayList;
import java.util.List;
/**
* A simple reporter that collects the results and prints them on standard out.
*/
public class TextReporter extends TestListenerAdapter {
private final int m_verbose;
private final String m_testName;
public TextReporter(String testName, int verbose) {
m_testName = testName;
m_verbose = verbose;
}
@Override
public void onFinish(ITestContext context) {
if (m_verbose >= 2) {
logResults();
}
}
private static List resultsToMethods(List results) {
List result = new ArrayList<>(results.size());
for (ITestResult tr : results) {
result.add(tr.getMethod());
}
return result;
}
private void logResults() {
// Log Text
for (ITestResult tr : getConfigurationFailures()) {
Throwable ex = tr.getThrowable();
String stackTrace = "";
if (ex != null && m_verbose >= 2) {
stackTrace = Utils.shortStackTrace(ex, false);
}
logResult("FAILED CONFIGURATION",
Utils.detailedMethodName(tr.getMethod(), false),
tr.getMethod().getDescription(),
stackTrace,
tr.getParameters(),
tr.getMethod().getConstructorOrMethod().getParameterTypes()
);
}
for (ITestResult tr : getConfigurationSkips()) {
logResult("SKIPPED CONFIGURATION",
Utils.detailedMethodName(tr.getMethod(), false),
tr.getMethod().getDescription(),
null,
tr.getParameters(),
tr.getMethod().getConstructorOrMethod().getParameterTypes()
);
}
for (ITestResult tr : getPassedTests()) {
logResult("PASSED", tr, null);
}
for (ITestResult tr : getFailedTests()) {
Throwable ex = tr.getThrowable();
String stackTrace= "";
if (ex != null && m_verbose >= 2) {
stackTrace= Utils.shortStackTrace(ex, false);
}
logResult("FAILED", tr, stackTrace);
}
for (ITestResult tr : getSkippedTests()) {
Throwable throwable = tr.getThrowable();
logResult("SKIPPED", tr, throwable != null ? Utils.shortStackTrace(throwable, false) : null);
}
List ft = resultsToMethods(getFailedTests());
StringBuilder logBuf = new StringBuilder("\n===============================================\n");
logBuf.append(" ").append(m_testName).append("\n");
logBuf.append(" Tests run: ").append(Utils.calculateInvokedMethodCount(getAllTestMethods()))
.append(", Failures: ").append(Utils.calculateInvokedMethodCount(ft))
.append(", Skips: ").append(Utils.calculateInvokedMethodCount(resultsToMethods(getSkippedTests())));
int confFailures = getConfigurationFailures().size();
int confSkips = getConfigurationSkips().size();
if(confFailures > 0 || confSkips > 0) {
logBuf.append("\n").append(" Configuration Failures: ").append(confFailures)
.append(", Skips: ").append(confSkips);
}
logBuf.append("\n===============================================\n");
logResult("", logBuf.toString());
}
private void logResult(String status, ITestResult tr, String stackTrace) {
logResult(status, tr.getName(), tr.getMethod().getDescription(), stackTrace,
tr.getParameters(), tr.getMethod().getConstructorOrMethod().getParameterTypes());
}
private void logResult(String status, String message) {
StringBuilder buf = new StringBuilder();
if(isStringNotBlank(status)) {
buf.append(status).append(": ");
}
buf.append(message);
System.out.println(buf);
}
private void logResult(String status, String name,
String description, String stackTrace,
Object[] params, Class[] paramTypes) {
StringBuilder msg = new StringBuilder(name);
if (null != params && params.length > 0) {
msg.append("(");
// The error might be a data provider parameter mismatch, so make
// a special case here
if (params.length != paramTypes.length) {
msg.append(name).append(": Wrong number of arguments were passed by ")
.append("the Data Provider: found ").append(params.length).append(" but ")
.append("expected ").append(paramTypes.length)
.append(")");
} else {
for (int i= 0; i < params.length; i++) {
if (i > 0) {
msg.append(", ");
}
msg.append(Utils.toString(params[i], paramTypes[i]));
}
msg.append(")");
}
}
if (!Utils.isStringEmpty(description)) {
msg.append("\n");
for (int i = 0; i < status.length() + 2; i++) {
msg.append(" ");
}
msg.append(description);
}
if (!Utils.isStringEmpty(stackTrace)) {
msg.append("\n").append(stackTrace);
}
logResult(status, msg.toString());
}
}