Best Python code snippet using unittest-xml-reporting_python
result.py
Source:result.py
...111 self.subtests = {}112 self.callback = None113 self.infoclass = _TestInfo114 self.report_files = []115 def _prepare_callback(self, test_info, target_list, verbose_str,116 short_str):117 """ Appends a 'info class' to the given target list and sets a118 callback method to be called by stopTest method."""119 target_list.append(test_info)120 def callback():121 """ Print test method outcome to the stream and elapsed time too."""122 test_info.test_finished()123 if self.showAll:124 self.stream.writeln(125 "{} ({:3f})s".format(verbose_str, test_info.elapsed_time))126 elif self.dots:127 self.stream.write(short_str)128 self.callback = callback129 def getDescription(self, test):130 """ Return the test description if not have test name. """131 return str(test)132 def startTest(self, test):133 """ Called before execute each method. """134 self.start_time = time.time()135 TestResult.startTest(self, test)136 if self.showAll:137 self.stream.write(" " + self.getDescription(test))138 self.stream.write(" ... ")139 def _save_output_data(self):140 try:141 self._stdout_data = sys.stdout.getvalue()142 self._stderr_data = sys.stderr.getvalue()143 except AttributeError:144 pass145 def stopTest(self, test):146 """ Called after excute each test method. """147 self._save_output_data()148 TextTestResult.stopTest(self, test)149 self.stop_time = time.time()150 if self.callback and callable(self.callback):151 self.callback()152 self.callback = None153 def addSuccess(self, test):154 """ Called when a test executes successfully. """155 self._save_output_data()156 self._prepare_callback(self.infoclass(self, test), self.successes, "OK", ".")157 @failfast158 def addFailure(self, test, err):159 """ Called when a test method fails. """160 self._save_output_data()161 testinfo = self.infoclass(self, test, self.infoclass.FAILURE, err)162 self._prepare_callback(testinfo, self.failures, "FAIL", "F")163 @failfast164 def addError(self, test, err):165 """" Called when a test method raises an error. """166 self._save_output_data()167 testinfo = self.infoclass(self, test, self.infoclass.ERROR, err)168 self._prepare_callback(testinfo, self.errors, 'ERROR', 'E')169 def addSubTest(self, testcase, test, err):170 """ Called when a subTest completes. """171 self._save_output_data()172 # TODO: should ERROR cases be considered here too?173 if err is None:174 testinfo = self.infoclass(self, testcase, self.infoclass.SUCCESS, err, subTest=test)175 self._prepare_callback(testinfo, self.successes, "OK", ".")176 else:177 testinfo = self.infoclass(self, testcase, self.infoclass.FAILURE, err, subTest=test)178 self._prepare_callback(testinfo, self.failures, "FAIL", "F")179 test_id_components = str(testcase).rstrip(')').split(' (')180 test_id = test_id_components[1] + '.' + test_id_components[0]181 if test_id not in self.subtests:182 self.subtests[test_id] = []183 self.subtests[test_id].append(testinfo)184 def addSkip(self, test, reason):185 """" Called when a test method was skipped. """186 self._save_output_data()187 testinfo = self.infoclass(self, test, self.infoclass.SKIP, reason)188 self._prepare_callback(testinfo, self.skipped, "SKIP", "S")189 def printErrorList(self, flavour, errors):190 """191 Writes information about the FAIL or ERROR to the stream.192 """193 for test_info in errors:194 self.stream.writeln(self.separator1)195 self.stream.writeln(196 '{} [{:3f}s]: {}'.format(flavour, test_info.elapsed_time,197 test_info.test_id)198 )199 self.stream.writeln(self.separator2)200 self.stream.writeln('%s' % test_info.get_error_info())201 def _get_info_by_testcase(self):202 """ Organize test results by TestCase module. """...
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!!