电脑如何制作网页教程西安seo培训学校
这篇文章主要介绍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 testDelself.assertEqual(2,delnum(1,1))
AssertionError: 2 != 0----------------------------------------------------------------------
Ran 3 tests in 0.000sFAILED (failures=1)
可以看出运行用力的时候先执行了初始化,运行完毕后执行结束函数,销毁一些链接。自动化测试或者单元测试可能会涉及到从配置文件中读取数据,需要在初始化的时候打开文件,测试完毕后需要关闭文件。下面是具体的源码。
# -*- coding: utf-8 -*-
import unittestdef sumnum(a,b):return a + bdef delnum(a,b):return a - bdef hello():return "hello world"def chengfa(a,b):return a * bclass 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)