WEB开发网
开发学院软件开发Python Python自动单元测试框架 阅读

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作为软件开发过程中的自动单元测试框架。

上一页  5 6 7 8 9 10 

Tags:Python 自动 单元

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接