Python3 Cookbook测试调试和异常

本文主要是阅读完cookbook第14章的测试,调试和异常的,对章节内的各个子目录的一句话总结。这一章讲了测试,测试主要用到了unittest模块;讲了调试主要是set trace;讲了异常,主要是层级捕获异常,自定义异常相关的方案。

1、测试输出到标准输出上,使用unittest.mock.patch替换系统输出,然后使用assertEqual比对和给定的输出是否一样。

2、在单元测试中给对象打补丁,使用unittest.mock.patch替换函数输出,或者模拟输入用来测试代码的可用性。

3、在单元测试中测试异常情况,使用assert*簇的函数进行异常测试,可以讲产生输出结果的数据和期望输出的数据进行比对。

4、讲测试输出用日志记录到文件中,这一节在代码中没有复现。主要原因是if __name__ == '__main__'没有执行。

5、忽略或者期望测试失败,使用unittest.skip可以设置在某些条件下不需要测试。

6、处理多个异常,在try语句可以接多个except,异常存在层级关系,基类包含其子类,使用__mro__属性值查看该异常类的层级结构

7、使用Exception as e 捕获除systemExit, keyboardInterrupt和genertorExit的所有异常

8、创建自定义异常,异常继承至基类Exception类

9、捕获异常后抛出另外的异常,用来链接异常使用raise another exception from e

10、重新抛出被捕获的异常,在except 语句中写上raise

11、输出警告信息,在控制台中使用python -W all输出所有警告, ignore忽略所有警告,error 警告变成异常。使用warning.warn()函数可以设置警告类型

12、调试基本的程序崩溃错误,在控制台中使用python -i 会进行交互,或者使用pdb模块。该模块的使用方法可以参考IBM博客描述https://www.ibm.com/developerworks/cn/linux/l-cn-pythondebugger/index.html

13、给你的程序做性能测试,在linux中直接使用time python someprogram.py 可以就按用时,也可以使用python -m cProfile someprogram.py进行测试。

14、加速程序运行,主要一下三点,1、使用局部变量,2、尽量去掉属性次,3、即时编译工具(JIT)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值