python的单元测试模块---unittest
Python的Unittest单元测试
一个项目在最终发布前必须要进行测试,为了在测试中测试应用的安全性,正确性,有效性。需编写相应的测试代码来检测
所有功能是否符合要求。
Python中使用的单元测试模块最多的是unittest,包括一些主流web框架,例如Django中的单元测试django.test也是继承
于unittest模块的。
最近使用Django框架,想测试功能,发现django.test是继承与unittest的,所以今天学习下unittest模块的一些用法。
unittest的官方文档:
https://docs.python.org/3/library/unittest.html#assert-methods
注:要多阅读阅读英文文档,很有帮助的。
一、Unittest的简要介绍
unittest提供了自动化测试,共享测试的设置,关闭代码测试,集合的聚合测试以及独立于报告框架的测试。
二、如何使用Unittest
1.命名约束:所有的测试实例的命名要以test_
开头,这样能让测试运行器识别哪些方法作为测试方法。
一个简单的测试案例:
1 |
|
说明:
① 每一个测试的关键点是回调assertEqual()
函数,来检查得到的结果和预期的结果是否符合
② assertTrue()
和 assertFalse()
去验证是否满足条件。
③ assertRaises()
用于验证当产生异常时,指定的异常是否被捕捉到。
④ 使用这些assert
方法,而不是assert
属性的好处在于可以生成多个异常结果形成一个报告,因为assert
属性是针对一个表达式。
⑤ unittest.main()提供了一个命令行接口去测试脚本。
以上就是一个简单的测试用例,但也能够满足大多数测试场景。
三、学习命令行接口调用测试
1.命令行启动测试案例有三种:
1 |
|
注:
①python -m
相当于import模块,执行的可以是一个模块。
② 后面可以接多个模块;也可以接模块中的类,或者类的测试方法,当然也可以是py脚本
③-v
表示verbosity
(冗余),该指令表示详细的针对每一个测试用例显示其结果。
介绍几个常用的指令:
①-c
,强制停着,产生 KeyboardInterrupt
异常
② -f
,当遇见第一个失败的测试停止
③-b
,主要用来在运行期间缓存错误的异常,当运行结束,输出结果后再清空缓存区。
今天先学到这,先去结合django实践一下咯~
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!