How to use createMethod method of com.paypal.selion.internal.reports.html.HtmlReporterListener class

Best SeLion code snippet using com.paypal.selion.internal.reports.html.HtmlReporterListener.createMethod

Source:HtmlReporterListener.java Github

copy

Full Screen

...104 out = createWriter(outputDir);105 startHtml(out);106 List<Line> lines = createSummary(suites);107 createDetail(lines);108 createMethodContent(suites, outputDir);109 endHtml(out);110 out.flush();111 out.close();112 logger.exiting();113 }114 115 private void createDetail(List<Line> lines) {116 logger.entering(lines);117 for (Line line : lines) {118 createContent(line);119 }120 logger.exiting();121 }122 private void createContent(Line line) {123 logger.entering(line);124 try {125 File f = new File(outputDir + "/html/", line.getId() + ".html");126 logger.fine("generating method " + f.getAbsolutePath());127 Writer fileSystemWriter = new PrintWriter(new BufferedWriter(new OutputStreamWriter(128 new FileOutputStream(f), "UTF8")));129 Map<ITestNGMethod, List<ITestResult>> resultByMethod = new HashMap<ITestNGMethod, List<ITestResult>>();130 // find all methods131 for (ITestResult result : line.getAssociatedResults()) {132 List<ITestResult> list = resultByMethod.get(result.getMethod());133 if (list == null) {134 list = new ArrayList<ITestResult>();135 resultByMethod.put(result.getMethod(), list);136 }137 list.add(result);138 }139 // for each method, find all the status140 for (Entry<ITestNGMethod, List<ITestResult>> method : resultByMethod.entrySet()) {141 List<ITestResult> passed = new ArrayList<ITestResult>();142 List<ITestResult> failed = new ArrayList<ITestResult>();143 List<ITestResult> skipped = new ArrayList<ITestResult>();144 List<ITestResult> results = method.getValue();145 for (ITestResult result : results) {146 switch (result.getStatus()) {147 case ITestResult.SUCCESS:148 passed.add(result);149 break;150 case ITestResult.FAILURE:151 failed.add(result);152 break;153 case ITestResult.SKIP:154 skipped.add(result);155 break;156 default:157 throw new ReporterException(158 "Implementation exists only for tests with status as : Success, Failure and Skipped");159 }160 }161 // for each status // method, create the html162 if (passed.size() > 0) {163 Template t = ve.getTemplate("/templates/method.part.html");164 VelocityContext context = new VelocityContext();165 context.put("status", "passed");166 context.put("method", passed.get(0).getMethod());167 StringBuilder buff = new StringBuilder();168 for (ITestResult result : passed) {169 buff.append(getContent(result));170 }171 context.put("content", buff.toString());172 StringWriter writer = new StringWriter();173 t.merge(context, writer);174 fileSystemWriter.write(writer.toString());175 }176 if (failed.size() > 0) {177 Template t = ve.getTemplate("/templates/method.part.html");178 VelocityContext context = new VelocityContext();179 context.put("status", "failed");180 context.put("method", failed.get(0).getMethod());181 StringBuilder buff = new StringBuilder();182 for (ITestResult result : failed) {183 buff.append(getContent(result));184 }185 context.put("content", buff.toString());186 StringWriter writer = new StringWriter();187 t.merge(context, writer);188 fileSystemWriter.write(writer.toString());189 }190 if (skipped.size() > 0) {191 Template t = ve.getTemplate("/templates/method.part.html");192 VelocityContext context = new VelocityContext();193 context.put("status", "skipped");194 context.put("method", skipped.get(0).getMethod());195 StringBuilder buff = new StringBuilder();196 for (ITestResult result : skipped) {197 buff.append(getContent(result));198 }199 context.put("content", buff.toString());200 StringWriter writer = new StringWriter();201 t.merge(context, writer);202 fileSystemWriter.write(writer.toString());203 }204 }205 fileSystemWriter.flush();206 fileSystemWriter.close();207 } catch (Exception e) {208 ReporterException re = new ReporterException(e);209 throw re;210 }211 logger.exiting();212 }213 private void createMethodContent(List<ISuite> suites, String outdir) {214 logger.entering(new Object[] { suites, outdir });215 for (ISuite suite : suites) {216 Map<String, ISuiteResult> r = suite.getResults();217 for (ISuiteResult r2 : r.values()) {218 ITestContext ctx = r2.getTestContext();219 ITestNGMethod[] methods = ctx.getAllTestMethods();220 for (int i = 0; i < methods.length; i++) {221 createMethod(ctx, methods[i], outdir);222 }223 }224 }225 logger.exiting();226 }227 private String getContent(ITestResult result) {228 logger.entering(result);229 StringBuilder contentBuffer = new StringBuilder();230 contentBuffer.append(String.format("Total duration of this instance run : %02d sec. ",231 (result.getEndMillis() - result.getStartMillis()) / 1000));232 Object[] parameters = result.getParameters();233 boolean hasParameters = parameters != null && parameters.length > 0;234 List<String> msgs = Reporter.getOutput(result);235 boolean hasReporterOutput = msgs.size() > 0;236 Throwable exception = result.getThrowable();237 boolean hasThrowable = exception != null;238 List<String> imgForFilmStrip = new ArrayList<String>();239 if (hasReporterOutput || hasThrowable) {240 if (hasParameters) {241 contentBuffer.append("<h2 class='yuk_grey_midpnl_ltitle'>");242 for (int i = 0; i < parameters.length; i++) {243 Object p = parameters[i];244 String paramAsString = "null";245 if (p != null) {246 paramAsString = p.toString() + "<i>(" + p.getClass().getSimpleName() + ")</i> , ";247 }248 contentBuffer.append(paramAsString);249 }250 contentBuffer.append("</h2>");251 }252 if (hasReporterOutput || hasThrowable) {253 contentBuffer.append("<div class='leftContent' style='float: left; width: 70%;'>");254 contentBuffer.append("<h3>Test Log</h3>");255 for (String line : msgs) {256 BaseLog logLine = new BaseLog(line);257 if (logLine.getScreen() != null) {258 imgForFilmStrip.add(logLine.getScreenURL());259 }260 String htmllog = logLine.getMsg();261 // Attaching ralogId to each of the page title.262 if ((logLine.getHref() != null) && (logLine.getHref().length() > 1)) {263 htmllog = "<a href='../" + logLine.getHref() + "' title='" + logLine.getLocation() + "' >"264 + (StringUtils.isNotEmpty(htmllog) ? htmllog : "Page Source") + "</a>";265 266 }267 // Don't output blank message w/o any Href.268 if ((logLine.getHref() != null) || logLine.getMsg() != null && !logLine.getMsg().isEmpty()) {269 contentBuffer.append(htmllog);270 contentBuffer.append("<br/>");271 }272 }273 if (hasThrowable) {274 generateExceptionReport(exception, result.getMethod(), contentBuffer);275 }276 }277 contentBuffer.append("</div>"); // end of278 // leftContent279 contentBuffer.append("<div class='filmStripContainer' style='float: right; width: 100%;'>");280 contentBuffer.append("<b>Preview</b>");281 contentBuffer.append("<div class=\"filmStrip\">");282 contentBuffer.append("<ul>");283 for (String imgPath : imgForFilmStrip) {284 contentBuffer.append("<li>");285 contentBuffer.append("<a href=\"../" + imgPath + "\" > <img src=\"../" + imgPath286 + "\" width=\"200\" height=\"200\" /> </a>");287 contentBuffer.append("</li>");288 }289 contentBuffer.append("</ul>");290 contentBuffer.append("</div>");291 contentBuffer.append("</div>");292 }293 contentBuffer.append("<div class='clear_both'></div>");294 // Not logging the return value, because it will clog the logs295 logger.exiting();296 return contentBuffer.toString();297 }298 protected void generateExceptionReport(Throwable exception, ITestNGMethod method, StringBuilder contentBuffer) {299 logger.entering(new Object[] { exception, method, contentBuffer });300 Throwable fortile = exception;301 String title = fortile.getMessage();302 if (title == null) {303 title = "Encountered problems when attempting to extract a meaningful Root cause.";304 if (fortile.getCause() != null && !fortile.getCause().getMessage().trim().isEmpty()) {305 title = fortile.getCause().getMessage();306 }307 }308 generateExceptionReport(exception, method, title, contentBuffer);309 logger.exiting();310 }311 private void generateExceptionReport(Throwable exception, ITestNGMethod method, String title,312 StringBuilder contentBuffer) {313 generateTheStackTrace(exception, method, title, contentBuffer);314 }315 private void generateTheStackTrace(Throwable exception, ITestNGMethod method, String title,316 StringBuilder contentBuffer) {317 logger.entering(new Object[] { exception, method, title, contentBuffer });318 contentBuffer.append(" <div class='stContainer' >" + exception.getClass() + ":" + title// escape(title)319 + "<a class='exceptionlnk' href='#'>(+)</a>");320 contentBuffer.append("<div class='exception' style='display:none'>");321 StackTraceElement[] s1 = exception.getStackTrace();322 Throwable t2 = exception.getCause();323 if ((t2 != null) && (t2.equals(exception))) {324 t2 = null;325 }326 for (int x = 0; x < s1.length; x++) {327 contentBuffer.append((x > 0 ? "<br/>at " : "") + escape(s1[x].toString()));328 }329 if (t2 != null) {330 generateExceptionReport(t2, method, "Caused by " + t2.getLocalizedMessage(), contentBuffer);331 }332 contentBuffer.append("</div></div>");333 logger.exiting();334 }335 private static String escape(String string) {336 if (null == string) {337 return string;338 }339 return string.replaceAll("<", "&lt;").replaceAll(">", "&gt;");340 }341 private void createMethod(ITestContext ctx, ITestNGMethod method, String outdir) {342 logger.entering(new Object[] { ctx, method, outdir });343 try {344 File f = new File(outdir + "/html/", method.getId() + ".html");345 logger.fine("generating method " + f.getAbsolutePath());346 Writer fileSystemWriter = new PrintWriter(new BufferedWriter(new OutputStreamWriter(347 new FileOutputStream(f), "UTF8")));348 Template t = ve.getTemplate("/templates/method.part.html");349 Set<ITestResult> passed = ctx.getPassedTests().getResults(method);350 for (ITestResult result : passed) {351 VelocityContext context = new VelocityContext();352 context.put("method", method);353 context.put("status", "passed");354 context.put("result", result);355 context.put("content", getContent(result));...

Full Screen

Full Screen

createMethod

Using AI Code Generation

copy

Full Screen

1import com.paypal.selion.internal.reports.html.HtmlReporterListener;2import org.testng.ITestResult;3import org.testng.TestListenerAdapter;4public class CustomHtmlReportListener extends TestListenerAdapter {5 public void onTestFailure(ITestResult tr) {6 HtmlReporterListener.createMethod(tr);7 }8 public void onTestSkipped(ITestResult tr) {9 HtmlReporterListener.createMethod(tr);10 }11 public void onTestSuccess(ITestResult tr) {12 HtmlReporterListener.createMethod(tr);13 }14 public void onTestStart(ITestResult result) {15 HtmlReporterListener.createMethod(result);16 }17}18import com.paypal.selion.internal.reports.html.HtmlReporterListener;19import org.testng.ITestContext;20import org.testng.TestListenerAdapter;21public class CustomHtmlReportListener extends TestListenerAdapter {22 public void onStart(ITestContext testContext) {23 HtmlReporterListener.createTest(testContext);24 }25}26import com.paypal.selion.internal.reports.html.HtmlReporterListener;27import org.testng.ISuite;28import org.testng.TestListenerAdapter;29public class CustomHtmlReportListener extends TestListenerAdapter {30 public void onStart(ISuite suite) {31 HtmlReporterListener.createSuite(suite);32 }33}34import com.paypal.selion.internal.reports.html.HtmlReporterListener;35import org.testng.ISuite;36import org.testng.TestListenerAdapter;37public class CustomHtmlReportListener extends TestListenerAdapter {38 public void onFinish(ISuite suite) {39 HtmlReporterListener.createSuite(suite);40 }41}42import com.paypal.selion.internal.reports.html.HtmlReporterListener;43import

Full Screen

Full Screen

createMethod

Using AI Code Generation

copy

Full Screen

1HtmlReporterListener.createMethod("method1", "method1_description");2HtmlReporterListener.createMethod("method2", "method2_description");3HtmlReporterListener.createMethod("method3", "method3_description");4HtmlReporterListener.createMethod("method4", "method4_description");5HtmlReporterListener.createMethod("method5", "method5_description");6HtmlReporterListener.createMethod("method6", "method6_description");7HtmlReporterListener.createMethod("method7", "method7_description");8HtmlReporterListener.createMethod("method8", "method8_description");9HtmlReporterListener.createMethod("method9", "method9_description");10HtmlReporterListener.createMethod("method10", "method10_description");11HtmlReporterListener.createMethod("method11", "method11_description");12HtmlReporterListener.createMethod("method12", "method12_description");13HtmlReporterListener.createMethod("method13", "method13_description");14HtmlReporterListener.createMethod("method14", "method14_description");15HtmlReporterListener.createMethod("method15", "method15_description");16HtmlReporterListener.createMethod("method16", "method16_description");17HtmlReporterListener.createMethod("method17", "method17_description");18HtmlReporterListener.createMethod("method18", "method18_description");19HtmlReporterListener.createMethod("method19", "method19_description");

Full Screen

Full Screen

createMethod

Using AI Code Generation

copy

Full Screen

1runWith ( HtmlReporterListener . class ) { 2 def testMethod = new HtmlReporterListener (). createMethod ( "sampleTest" , "sample description" , "sample group" ) 3 assert testMethod . getMethodName () == "sampleTest" 4 assert testMethod . getDescription () == "sample description" 5 assert testMethod . getGroups () == "sample group" 6 }

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful