Python学习(8)——错误、调试和测试

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yjh4866/article/details/84101463

1、错误处理

(1)常见的错误类型和继承关系看这里:

https://docs.python.org/3/library/exceptions.html#exception-hierarchy

(2)如果错误没有被捕获,它就会一直往上抛,最后被Python解释器捕获,打印一个错误信息,然后程序退出

        出错的时候,一定要分析错误的调用栈信息,才能定位错误的位置

(3)Python内置的logging模块可以非常容易地记录错误信息。

        通过配置,logging还可以把错误记录到日志文件里,方便事后排查

(4)如果要抛出错误,可以根据需要定义一个错误的class,选择好继承关系,然后用raise语句抛出一个错误的实例

(5)raise语句如果不带参数,就会把当前错误原样抛出

2、调试

扫描二维码关注公众号,回复: 4103105 查看本文章

(1)程序中如果到处充斥着assert,和print()相比也好不到哪去。不过,启动Python解释器时可以用-O参数来关闭assert

(2)logging的好处是,它允许你指定记录信息的级别,有debuginfowarningerror等几个级别。当我们指定level=INFO时,logging.debug就不起作用了;同理,指定level=WARNING后,debuginfo就不起作用了。logging的另一个好处是通过简单的配置,一条语句可以同时输出到不同的地方,比如console和文件

(3)启动Python的调试器pdb,让程序以单步方式运行,可以随时查看运行状态

(4)pdb.set_trace()

        只需要import pdb,然后在可能出错的地方放一个pdb.set_trace(),就可以设置一个断点

(5)目前比较好的Python IDE有:

        Visual Studio Code:https://code.visualstudio.com/,需要安装Python插件。

        PyCharm:http://www.jetbrains.com/pycharm/

        另外,Eclipse加上pydev插件也可以调试Python程序

3、单元测试

(1)写单元测试需要引入Python自带的unittest模块

(2)测试类从unittest.TestCase继承,以test开头的方法就是测试方法,不以test开头的方法不被认为是测试方法,测试的时候不会被执行

(3)运行单元测试最简单的方法是在脚本文件的最后加上两行代码:

if __name__ == '__main__':
    unittest.main()

        另一种方法是在命令行通过参数-m unittest直接运行单元测试

(4)可以在单元测试中编写两个特殊的setUp()tearDown()方法,这两个方法会分别在每调用一个测试方法的前后分别被执行

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143191629979802b566644aa84656b50cd484ec4a7838000

4、文档测试

(1)doctest非常有用,不但可以用来测试,还可以直接作为示例代码。通过某些文档生成工具,就可以自动把包含doctest的注释提取出来。用户看文档的时候,同时也看到了doctest

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319170285543a4d04751f8846908770660de849f285000

猜你喜欢

转载自blog.csdn.net/yjh4866/article/details/84101463