Python自动单元测试框架
2007-03-30 12:28:08 来源:WEB开发网核心提示: if __name__ == "__main__":unittest.main()使用main()方法来实施测试的例子如例8所示,例8. main_runner.pyfrom widget import Widgetimport unittest# 执行测试的类clas
if __name__ == "__main__":
unittest.main()
使用main()方法来实施测试的例子如例8所示,
例8. main_runner.py
from widget import Widget
import unittest
# 执行测试的类
class WidgetTestCase(unittest.TestCase):
def setUp(self):
self.widget = Widget()
def tearDown(self):
self.widget.dispose()
self.widget = None
def testSize(self):
self.assertEqual(self.widget.getSize(), (40, 40))
def testResize(self):
self.widget.resize(100, 100)
self.assertEqual(self.widget.getSize(), (100, 100))
# 测试
if __name__ == "__main__":
unittest.main()
要执行该单元测试,可以使用如下命令:
[xiaowp@gary code]$ python main_runner.py
测试类WidgetTestCase中的所有测试方法都将被自动执行,但如果只想执行testSize()方法,可以使用如下命令:
[xiaowp@gary code]$ python main_runner.py WidgetTestCase.testSize
如果在单元测试脚本中定义了TestSuite,还可以指定要运行的测试集。使用-h参数可以查看运行该脚本所有可能用到的参数:
[xiaowp@gary code]$ python main_runner.py -h
为了使单元测试更具亲合力,PyUnit软件包中还提供了一个图形界面测试脚本unittestgui.py,将其复制到当前目录后,可以执行下面的命令来启动该测试工具,对main_runner.py脚本中的所有测试用例进行测试:
[xiaowp@gary code]$ python unittestgui.py main_runner
该测试工具动行时的界面如图1所示:
图1. 图形测试工具
单击Start按钮可以开始执行所有测试用例,测试结果将如图2所示:
图2 测试结果
使用图形界面可以更好地进行单元测试,查询测试结果也更加方便。PyUnit对于没有通过的测试会进行区分,指明它是失败(failure)还是错误(error),失败是被assert类方法(如assertEqual)检查到的预期结果,而错误则是由意外情况所引起的。
四、小结
测试是保证软件质量的关键,新的软件开发方法要求程序员在编写代码前先编写测试用例,并在软件开发过程中不断地进行单元测试,从而最大限度地减少缺陷(Bug)的产生。软件单元测试是XP方法的基石,测试框架为程序员进行单元测试提供了统一的规范,Python程序员可以使用PyUnit作为软件开发过程中的自动单元测试框架。
更多精彩
赞助商链接