目录
一、问题抛出
python的logging模块是python使用过程中打印日志的利器。我们可以使用logging模块的logger、Handler、formatter对我们的日志进行封装,指定日志输出的路径、格式以及位置。在声明logger的时候可以传一个字符串作为这个logger的标签。一直以为这个logger是以单例对象的设计模式设计的,只要这个标签名是一样的,那么返回的logger就是同一个。在打印日志的时候,想要实现日志分层,定义类如下函数来封装日志打印函数(由于源代码已经修改,用伪代码形式)
def print_log_info(msg):
# Logger是我定义的一个类,用来封装日志打印的
logger = Logger('INFO').getLogger()
logger.info(msg)
在测试用例中用到了ddt,将测试用例参数化。关键代码如下:
@data(*test_datas['test_add'])
@unpack
def test_add(self, *args, **kwargs):
data_path, err_num, test_id, p1, p2, value = args
result = Test(p1, p2).add()
try:
self.assertEqual(result, value, "在{err_num}行用例编号为{test_id}的测试中加法错误,请重新输入" .format(
err_num = err_num,
test_id = test_id
))
utils.print_log_info("在{err_num}行用例编号为{test_id}的测试中加法测试成功".format(err_num = err_num,test_id = test_id))
except AssertionError as err:
err_str = traceback.format_exc()