测试用例的初始化和结束函数

发表于:2017-8-10 10:47

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:博客

  这篇文章主要介绍unittest的初始化和结束函数 
  unittest的初始化和结束类似Python类的init和del。 
  先回顾一下python中Class的初始化和结束
  class chushihuatest():
      def __init__(self):
          print "现在开始初始化"
      def zhongjian(self):
              print "中间量" 
      def __del__(self):
          print "现在已经结束了"
  if __name__ == '__main__':
      testChushihua = chushihuatest()
      testChushihua.zhongjian()
  执行上面的函数,显示的结果为:
  现在开始初始化 
  中间量 
  现在已经结束了 
  [Finished in 0.1s]
  也就是说,实例化chushihuatest()被调用zhongjian这个函数的时候,会先调用初始化函数_init_(self),执行了zhongjian函数后,会执行结束函数_del_(self)所以运行结果会吧三行都打印出来。
  unittest的初始化和结束函数类似Class的init和del。其实就是对测试环境的一个初始化,加载一些数据。退出测试用力的时候关闭一些东西,测试的结果如下
  testDel (__main__.testNum) ... 初始化
  FAIL
  结束
  testHello (__main__.testNum) ... 初始化
  结束
  ok
  testSum (__main__.testNum) ... 初始化
  结束
  ok
  ======================================================================
  FAIL: testDel (__main__.testNum)
  ----------------------------------------------------------------------
  Traceback (most recent call last):
    File "testcal.py", line 28, in testDel
      self.assertEqual(2,delnum(1,1))
  AssertionError: 2 != 0
  ----------------------------------------------------------------------
  Ran 3 tests in 0.000s
  FAILED (failures=1)
  可以看出运行用力的时候先执行了初始化,运行完毕后执行结束函数,销毁一些链接。自动化测试或者单元测试可能会涉及到从配置文件中读取数据,需要在初始化的时候打开文件,测试完毕后需要关闭文件。下面是具体的源码。
  # -*- coding: utf-8 -*-
  import unittest
  def sumnum(a,b):
      return a + b
  def delnum(a,b):
      return a - b
  def hello():
      return "hello world"
  def chengfa(a,b):
      return a * b
  class testNum(unittest.TestCase):
      def setUp(self):
          print "初始化"
      def tearDown(self):
          print "结束"
      def testSum(self):
          self.assertEqual(2,sumnum(1,1))
      def testDel(self):
          self.assertEqual(0,delnum(1,1))
      def testHello(self):
          self.assertEqual("hello world",hello())
  if __name__ == '__main__':
      suite1 = unittest.TestLoader().loadTestsFromTestCase(testNum)
      unittest.TextTestRunner(verbosity=3).run(suite1)
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号