测试案例初始化和退出函数

这篇文章主要介绍unittest的初始化和结束函数
unittest的初始化和结束类似Python类的initdel
先回顾一下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的initdel。其实就是对测试环境的一个初始化,加载一些数据。退出测试用力的时候关闭一些东西,测试的结果如下

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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容