前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python unittest初始化固件setUp和销毁固件tearDown详解

Python unittest初始化固件setUp和销毁固件tearDown详解

作者头像
王大力测试进阶之路
发布2019-10-25 19:15:11
4K0
发布2019-10-25 19:15:11
举报
文章被收录于专栏:橙子探索测试橙子探索测试

unittest.TestCase 包含了 setUp() 和 tearDown() 两个方法,其中 setUp() 方法用于初始化测试固件;而 tearDown() 方法用于销毁测试固件。程序会在运行每个测试用例(以 test_ 开头的方法)之前自动执行 setUp() 方法来初始化测试固件,在每个测试用例(以 test_ 开头的方法)运行完成之后自动执行 tearDown() 方法来销毁测试固件。

setUp()和tearDown()函数

setUp()函数是在众多函数或说是在一个类里最先被调用的函数,每执行完一个函数都要从setUp()调用开始后再执行下一个函数,有几个函数几次,与位置无关,随便放在那里都是他先被调用。

tearDown()函数是在众多函数执行完后他才被执行,不管这个类里面有多少函数,他总是最后一个被执行,与位置无关,放在那里都行,最后不管测试函数是否执行成功都执行tearDown()方法;如果setUp()方法失败,则认为这个测试项目失败,不会执行测试函数也不执行tearDown()方法。

1、setUp()和tearDown()方法都是非必要条件,如果没有也可以写pass

2、setUp()和tearDown()方法每个测试用例都会执行,先执行前置setUp,然后执行的用例(test*),最后执行的后置tearDown

3、setUp():setUp()方法用于测试用例执行前初始化工作。如测试用例中需要访问数据库,可以在setUp中建立数据库连接并进行初始化。如测试用例需要登录web,可以先实例化浏览器

4、tearDown():tearDown()方法用于测试用例执行之后的善后工作。如关闭数据库连接、关闭浏览器

unittest 在运行每个测试用例(以 test_ 开头的方法)之前都执行了 setUp() 方法,在每个测试用例(以 test_ 开头的方法)运行完成之后都执行了 tearDown() 方法,setUp() 方法和tearDown() 方法执行多次

代码语言:javascript
复制

#!/usr/bin/env python
# _*_coding:utf-8_*_
import unittest
class Test(unittest.TestCase):
    def setUp(self):
        print("执行setUp初始化固件")
    def tearDown(self):
        print("调用tearDown销毁固件")
    def test_001_a(self):
        print("this is test_001_a用例")
    def test_002_b(self):
        print("this is test_002_b用例")
    def test_003_a(self):
        print("this is test_003_a用例")
    def login(self):
        print("this is login用例")
if __name__ == '__main__':
    unittest.main()


"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test02.py
...
执行setUp初始化固件
this is test_001_a用例
----------------------------------------------------------------------
调用tearDown销毁固件
Ran 3 tests in 0.000s
执行setUp初始化固件

this is test_002_b用例
OK
调用tearDown销毁固件
执行setUp初始化固件
this is test_003_a用例
调用tearDown销毁固件

Process finished with exit code 0

setUpClass() 方法和tearDownClass()前加了@classmethod, unittest 在运行(以 test_ 开头的方法)测试用例之前执行setUpClass() 方法1次,最后运行完成(以 test_ 开头的方法)之后执行 tearDownClass() 方法1次,setUpClass() 方法和tearDownClass() 方法分别执行1次

代码语言:javascript
复制
#!/usr/bin/env python
# _*_coding:utf-8_*_
import unittest
class Test(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        print("执行setUpClass初始化固件")
    @classmethod
    def tearDownClass(cls):
        print("调用tearDownClass销毁固件")
    def test_001_a(self):
        print("this is test_001_a用例")
    def test_002_b(self):
        print("this is test_002_b用例")
    def test_003_a(self):
        print("this is test_003_a用例")
    def login(self):
        print("this is login用例")
if __name__ == '__main__':
    unittest.main()



"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test02.py
...
----------------------------------------------------------------------
Ran 3 tests in 0.000s

OK
执行setUpClass初始化固件
this is test_001_a用例
this is test_002_b用例
this is test_003_a用例
调用tearDownClass销毁固件

Process finished with exit code 0
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 橙子探索测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • setUp()和tearDown()函数
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档