Best Python code snippet using unittest-xml-reporting_python
result.py
Source:result.py
...39 """40 stream = getattr(self, 'stream', None)41 ec, ev, tb = err42 try:43 exc_info = self._exc_info_to_string(err, test)44 except TypeError:45 # 2.3 compat46 exc_info = self._exc_info_to_string(err)47 for cls, (storage, label, isfail) in self.errorClasses.items():48 if isclass(ec) and issubclass(ec, cls):49 if isfail:50 test.passed = False51 storage.append((test, exc_info))52 # Might get patched into a streamless result53 if stream is not None:54 if self.showAll:55 message = [label]56 detail = _exception_detail(err[1])57 if detail:58 message.append(detail)59 stream.writeln(": ".join(message))60 elif self.dots:61 stream.write(label[:1])62 return63 self.errors.append((test, exc_info))64 test.passed = False65 if stream is not None:66 if self.showAll:67 self.stream.writeln('ERROR')68 elif self.dots:69 stream.write('E')70 def printErrors(self):71 """Overrides to print all errorClasses errors as well.72 """73 _TextTestResult.printErrors(self)74 for cls in self.errorClasses.keys():75 storage, label, isfail = self.errorClasses[cls]76 if isfail:77 self.printErrorList(label, storage)78 # Might get patched into a result with no config79 if hasattr(self, 'config'):80 self.config.plugins.report(self.stream)81 def printSummary(self, start, stop):82 """Called by the test runner to print the final summary of test83 run results.84 """85 write = self.stream.write86 writeln = self.stream.writeln87 taken = float(stop - start)88 run = self.testsRun89 plural = run != 1 and "s" or ""90 91 writeln(self.separator2)92 writeln("Ran %s test%s in %.3fs" % (run, plural, taken))93 writeln()94 summary = {}95 eckeys = self.errorClasses.keys()96 eckeys.sort()97 for cls in eckeys:98 storage, label, isfail = self.errorClasses[cls]99 count = len(storage)100 if not count:101 continue102 summary[label] = count103 if len(self.failures):104 summary['failures'] = len(self.failures)105 if len(self.errors):106 summary['errors'] = len(self.errors)107 if not self.wasSuccessful():108 write("FAILED")109 else:110 write("OK")111 items = summary.items()112 if items:113 items.sort()114 write(" (")115 write(", ".join(["%s=%s" % (label, count) for116 label, count in items]))117 writeln(")")118 else:119 writeln()120 def wasSuccessful(self):121 """Overrides to check that there are no errors in errorClasses122 lists that are marked as errors and should cause a run to123 fail.124 """125 if self.errors or self.failures:126 return False127 for cls in self.errorClasses.keys():128 storage, label, isfail = self.errorClasses[cls]129 if not isfail:130 continue131 if storage:132 return False133 return True134 def _addError(self, test, err):135 try:136 exc_info = self._exc_info_to_string(err, test)137 except TypeError:138 # 2.3: does not take test arg139 exc_info = self._exc_info_to_string(err)140 self.errors.append((test, exc_info))141 if self.showAll:142 self.stream.write('ERROR')143 elif self.dots:144 self.stream.write('E')145 def _exc_info_to_string(self, err, test=None):146 # 2.3/2.4 -- 2.4 passes test, 2.3 does not147 try:148 return _TextTestResult._exc_info_to_string(self, err, test)149 except TypeError:150 # 2.3: does not take test arg151 return _TextTestResult._exc_info_to_string(self, err)152def ln(*arg, **kw):153 from warnings import warn154 warn("ln() has moved to nose.util from nose.result and will be removed "155 "from nose.result in a future release. Please update your imports ",156 DeprecationWarning)157 return _ln(*arg, **kw)...
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.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!