1.代码调试的方式
断言
assert 正确的元素状态,如果元素状态出现问题给出的错误提示
正确的元素状态 返回的是bool类型的 满足条件 代码向下执行
不满足条件 出现断言错误 给出错误提示
list0 = ["abc", "hello", 123, "good"]
list1 = [str(item) for item in list0]
for item in list0:
# 断言
assert isinstance(item, str), "item需要是字符串类型,但是该数据%s不是字符串格式" % (item)
print(item.upper())
'''
Traceback (most recent call last):
ABC
File "C:/Users/11143/Documents/讲课容/BJ_Python1811/day19/Day19/debug_pack/bug_demo.py", line 7, in <module>
assert isinstance(item, str), "item需要是字符串类型 但是该数据%s不是字符串格式" % (item)
HELLO
AssertionError: item的值需要是字符串类型 但是该数据123不是字符串格式
'''
logging
需要先导入模块 logging
在进行测试之前先添加一行配置语句:
logging.basicConfig(level=logging.INFO)
logging.info(数据信息)
import logging
logging.basicConfig(level=logging.INFO)
list0 = ["abc", "hello", 123, "good"]
for item in list0:
logging.info("item=%s" % (item))
print(item.upper())
'''
INFO:root:item=abc
INFO:root:item=hello
INFO:root:item=123
Traceback (most recent call last):
File "F:/老师代码/第04周/day19/debug_pack/bug_demo.py", line 17, in <module>
print(item.upper())
AttributeError: 'int' object has no attribute 'upper'
'''
单元测试
单元测试的作用:
用来对一个函数, 一个类或者一个模块进行正确测验的工作
如何进行单元测试:
导入unittest模块
声明一个类 继承自 unittest.TestCase
# 对列表进行升序排序
def sort_list(src_list):
# 冒泡排序
for out in range(1, len(src_list)):
for i in range(0, len(src_list) - out):
if src_list[i] > src_list[i+1]:
src_list[i], src_list[i+1] = src_list[i+1], src_list[i]
return src_list
def add(num1, num2):
return num1 + num2
from debug_pack.tools import *
import unittest
class Test(unittest.TestCase):
def test_s