这是HTMLTestRunner文件中的一段代码
def addError(self, test, err): self.error_count += 1 TestResult.addError(self, test, err) _, _exc_str= self.errors[-1] output = self.complete_output() self.result.append((2, test, output, _exc_str)) if self.verbosity > 1: sys.stderr.write('E ') sys.stderr.write(str(test)) sys.stderr.write('\n') else: sys.stderr.write('E')
以上是初始代码,可以正确生成HTML文件,并显示出result的数据
def addError(self, test, err): self.error_count += 1 TestResult.addError(self, test, err) _, _exc_str= self.errors[-1] short_log_Traceback = _exc_str.split("File")[1] short_message = _exc_str.split("selenium.common.exceptions.")[1] short_log_Message = short_message.split("Stacktrace")[0] short_log = short_log_Traceback + short_log_Message output = self.complete_output() self.result.append((2, test, output, short_log )) if self.verbosity > 1: sys.stderr.write('E ') sys.stderr.write(str(test)) sys.stderr.write('\n') else: sys.stderr.write('E')
这是修改后的第一种情况,生成了HTML文件,但是文件不包含任何数据,我返回result,显示为None,而short_log是确实有数据的
def addError(self, test, err): self.error_count += 1 TestResult.addError(self, test, err) _, _exc_str= self.errors[-1] short_log_Traceback = _exc_str.split("File")[1] short_message = _exc_str.split("selenium.common.exceptions.")[1] short_log_Message = short_message.split("Stacktrace")[0] short_log = short_log_Traceback + short_log_Message output = self.complete_output() A = self.result.append((2, test, output, short_log)) B = self.result.append((2, test, output, _exc_str)) if self.verbosity > 1: sys.stderr.write('E ') sys.stderr.write(str(test)) sys.stderr.write('\n') else: sys.stderr.write('E')
这是第二种情况,可以生成HTML文件,同时包含了A和B的信息,result均显示有值,此时当append的内容为short_log时,A的result不再显示为None
求解啊!怎样可以在不用输出_exc_str的情况下 可以输出A