时下junit测试框架非常流行,确实非常好用。很多人可能不知道,python也有一套unittest的测试框架叫做pyunit,被称作python版本的junit,由
Kent Beck和Erich Gamma开发的. JUnit也是kent开发的。有了pyunit,让我们写case方便了很多很多
- 一般现在的python版本,unittest模块都是自带的,看你的python版本是不是自带unittest,很简单
如果import unittest模块没有报模块找不到的错误,那么你的python是有unittest模块的
- 现在我们来看看具体的例子
- 我们要对addNum和delNum两个函数进行测试,我们像java一样写一个类继承于TestCase,然后里面的所有以test开头的方法都会被当做case执行,我们要以unittest.main()的方式来调用。
- 然后我们在命令行执行这个文件,就会得到
- 我们还可以打印case名,
- 我是建了一个集合,把TestFun这个case类中的所有test方法都load进来,然后用unittest自带的runner来运行,verbosity=2就是显示详细信息
- 这时case跑出来的结果就有了case名
- so nice?
慢慢来,还有好多强大的功能呢
- 先来看看假如出错,会怎么样?
暂时,我把testAdd改成这样,看执行结果
非常棒,提供给我们trace信息,让我们方便定位问题的出处 - unittest和junit一样,还有setup和tearDown,分别在每个test方法运行前和运行后执行,我们来对之前的代码进行一些更改
- 然后执行,看结果
从中可以看到setUp tearDown在每个test方法执行前后分别执行- 加入我们要对多个不同的类进行测试怎么办?很简单:
- python2.7还新增了好些unittest的特性,如比较好用的skip
执行效果:
- 再看条件判断skip,
- 结果: