Python单元测试框架比较Nose和pytest
Python 自动化测试RobotFramework做得是不错,但是有些地方还是不够方便。 之一python虽然好学,但是Robot Framework里面的东东一相加,增加了学习难度,不利于自动化测试的开展。之二RobotFramework易做图了很多python的功能。比如for的嵌套很困难,遂同时准备看看python的单元测试框架。
Python的标准库中的unittest和doctest都具备简单的单元测试功能。但是我们需要测试用例tag的功能。这个tag的一个实例:我们的测试用例可以标为high,有些标为middle,有些标为low,可以选择执行为high或者全部用例。这些功能unittest和doctest都没有支持。
于是我们转向外部模块。从pypi上看,外部的单元测试模块主要有pytest和nose。Nose的下载量数倍于pytest。表面上看应该毫无疑问选Nose了。实际使用中,发现Nose实际上并不适合我们的项目。请看下面的具体比较结果。
文档方面:py.test的文档做成了精美的pdf文档,并有详细的实例。Nose的文档只有web的,且几乎找不到什么实例。
测试发现:这块,我们没有很苛刻的要求,Nose和py.test都可以满足。
测试报告:pytest明显比Nose做得好。下面是空测试的实例:
[root@SZX-SRV-AUTOMATIONlib]# nosetests
----------------------------------------------------------------------
Ran0 tests in 0.000s
OK
[root@SZX-SRV-AUTOMATIONlib]# py.test
================================================================test session starts================================================================
platformlinux2 -- Python 2.6.6 -- pytest-2.3.4
collected0 items
================================================================= in 0.00 seconds ==================================================================
[root@SZX-SRV-AUTOMATIONlib]#
补充:Web开发 , Python ,