def test_two_positive_division(self, case_list): """ 两正数相除 :return: 当前测试用例的名称及测试结果 """ result_address = "测试时间:{}测试用例名称是{},测试结果是: ".format( TestDivision.now, inspect.stack()[0][3]) msg = case_list.tittle except_result = case_list.except_result first_num = case_list.first_num second_num = case_list.second_num act_result = case_list.act_result case_num = case_list.case_num try: act_result = MathNum(first_num, second_num).two_division() self.assertEqual(except_result, act_result, msg=msg) except AssertionError as a: # self.file.write("\n{}不通过,原因是{}\n".format(result_address,a)) do_log.error("\n{}不通过,原因是{}\n".format(result_address, a)) self.exl.excel_write(row=case_num + 1, real_result=act_result, result=do_config("result", "Fail")) raise a else: # self.file.write( "\n{},Pass\n".format(result_address + msg) ) do_log.error("\n{},Pass\n".format(result_address + msg)) self.exl.excel_write(row=case_num + 1, real_result=act_result, result=do_config("result", "success"))
def __init__(self): """ :param name:日志收集器的名字 :param level: 日志收集器的等级 """ # 定义名为case的日志收集器对象 self.loger = logging.getLogger(do_config("log", "name")) # 定义日志收集器等级 self.loger.setLevel(do_config("log", "content_level")) # 定义输出到终端 consle_handle = logging.StreamHandler() file_handle = RotatingFileHandler( filename=do_config("log", "log_name"), mode="a", maxBytes=do_config("log", "Maxbytes"), backupCount=do_config("log", "count"), encoding=do_config("log", "encoding")) # 定义日志输出出道等级 consle_handle.setLevel(do_config("log", "content_level")) file_handle.setLevel(do_config("log", "content_level")) # 定义日志显示格式 consle_format = logging.Formatter(do_config("log", "simple")) file_format = logging.Formatter(do_config("log", "clear")) consle_handle.setFormatter(consle_format) file_handle.setFormatter(file_format) self.loger.addHandler(consle_handle) self.loger.addHandler(file_handle)
class TestDivision(unittest.TestCase): """测试两数相除的类""" now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) exl = ExcelOption(filename=do_config("file path", "excel_path"), sheetname="division") case_list = exl.get_cases() @classmethod def setUpClass(cls): # cls.file_name = do_config("file path","report_path") # cls.file = open( cls.file_name , mode = "a" , encoding = "utf-8" ) # cls.file.write( "{:*^40s}".format( "测试开始" ) ) do_log.info("{:*^40s}".format("测试开始")) @classmethod def tearDownClass(cls): # cls.file.write( "{:*^40s}".format( "测试结束" ) ) # cls.file.close() do_log.info("{:*^40s}".format("测试结束")) @data(*case_list) def test_two_positive_division(self, case_list): """ 两正数相除 :return: 当前测试用例的名称及测试结果 """ result_address = "测试时间:{}测试用例名称是{},测试结果是: ".format( TestDivision.now, inspect.stack()[0][3]) msg = case_list.tittle except_result = case_list.except_result first_num = case_list.first_num second_num = case_list.second_num act_result = case_list.act_result case_num = case_list.case_num try: act_result = MathNum(first_num, second_num).two_division() self.assertEqual(except_result, act_result, msg=msg) except AssertionError as a: # self.file.write("\n{}不通过,原因是{}\n".format(result_address,a)) do_log.error("\n{}不通过,原因是{}\n".format(result_address, a)) self.exl.excel_write(row=case_num + 1, real_result=act_result, result=do_config("result", "Fail")) raise a else: # self.file.write( "\n{},Pass\n".format(result_address + msg) ) do_log.error("\n{},Pass\n".format(result_address + msg)) self.exl.excel_write(row=case_num + 1, real_result=act_result, result=do_config("result", "success"))
def excel_write(self, row, real_result, result): """ :param row:写入的行号 :param real_result: 测试实际结果 :param result:测试结果 pass/fail :return: """ self.wb = load_workbook(self.filename) self.ws = self.wb[self.sheetname] if isinstance(row, int) and (2 <= row <= self.ws.max_row): self.ws.cell(row=row, column=do_config("column", "act_column"), value=real_result) self.ws.cell(row=row, column=do_config("column", "res_column"), value=result) self.wb.save(self.filename) else: print("传入行号有误,行号应大于1的整数")
case = tuple( self.ws.iter_rows(min_row=row, max_row=row, values_only=True))[0] return self.Case(*case) else: print("只能是正整数") def excel_write(self, row, real_result, result): """ :param row:写入的行号 :param real_result: 测试实际结果 :param result:测试结果 pass/fail :return: """ self.wb = load_workbook(self.filename) self.ws = self.wb[self.sheetname] if isinstance(row, int) and (2 <= row <= self.ws.max_row): self.ws.cell(row=row, column=do_config("column", "act_column"), value=real_result) self.ws.cell(row=row, column=do_config("column", "res_column"), value=result) self.wb.save(self.filename) else: print("传入行号有误,行号应大于1的整数") do_excel = ExcelOption(do_config("file path", "excel_path"))