python模块化setUp()&tearDown()、setUpClass()&tearDownClass()、setUpModule()&tearDownModule()

1、setUp()&tearDown():在每个测试方法(用例)运行时被调用一次

setUp()主要实现测试前的初始化工作,而tearDown()则主要实现测试完成后的垃圾回收等工作  。 

代码:

#coding=utf-8
import unittest
class TestUM1(unittest.TestCase):#用例执行初始化
    def setUp(self):
        print("setUp start=========>")#测试完成后的清理环境
    def tearDown(self):
        print("==== END ! ====")
# =====测试用例========
    def test_numbers(self):
        print('1test_numbers')
    def test_strings(self):
        print('2test_strings')
if __name__ == '__main__':
    unittest.main()
执行结果:
  1. setUp start=========>  
  2. 1test_numbers  
  3. ==== END ! ====  
  4. setUp start=========>  
  5. 2test_strings  
  6. ==== END ! ====
2、setUpClass()&tearDownClass():  全程只调用一次  setUp()/tearDown(),必须使用@classmethod 装饰器
代码:
#coding=utf-8
import unittest
# 功能函数
def multiply(a,b):
    return a * bclass
TestUM1(unittest.TestCase):##全程只调用一次 setUp/tearDown,
    @classmethod
    def setUpClass(cls):
        print("Test Class Start ----->")
    @classmethod
   def tearDownClass(cls):
        print("Test Class End ----->")
    # =====测试用例========
    def test_numbers(self):
        print('1test_numbers')
       assert multiply(5,6) == 30
    def test_strings(self):
        print('2test_strings')
        assert multiply('b',2) == 'bb'
if __name__ == '__main__':
    unittest.main()

运行结果:

  1. Test Class Start ----->  
  2. 1test_numbers  
  3. 2test_strings  
  4. Test Class End ----->

3、setUpModule()&tearDownModule()

模块只指的是作用于一个文件,整个文件级别上只调用一次 setUp/tearDown

代码:

#coding=utf-8  
import unittest    
# 功能函数  
def multiply(a,b):  
    return a * b    
def setUpModule():  
    print('集成测试 >>>>>>>>>>>>>>开始')    
def tearDownModule():  
    print("集成测试 >>>>>>>>>>>>>>结束")    
class TestUM1(unittest.TestCase):   
    @classmethod  
    def setUpClass(cls):  
        print("Test Class Start ----->")  
    @classmethod  
    def tearDownClass(cls):  
        print("Test Class End ----->")    
    def setUp(self):  
        print("setUp start=========>")    
    def tearDown(self):  
        print("==== END ! ====")    
=====测试用例========  
    def test_numbers(self):  
        print('1test_numbers')  
        self.assertEqual(multiply(5,6),30)    
    def test_strings(self):  
        print('2test_strings')  
        assert multiply('b',2) == 'bb'    
class TestUM2(unittest.TestCase):    
    def test_3(self):  
        print('3test_3')    
if __name__ == '__main__':  
    unittest.main()

运行结果:

  1. 集成测试 >>>>>>>>>>>>>>开始  
  2. setUp start=========>  
  3. 1test_numbers  
  4. ==== END ! ====  
  5. setUp start=========>  
  6. 2test_strings  
  7. ==== END ! ====  
  8. 集成测试 >>>>>>>>>>>>>>结束

4、setUp()&tearDown()、setUpClass()&tearDownClass()、setUpModule()&tearDownModule()同时使用

三个模块的逻辑关系:

setUp()&tearDown() setUpClass()&tearDownClass() setUpModule()&tearDownModule()

代码:       

#coding=utf-8
import unittest
# 功能函数
    def multiply(a,b):
    return a * b
    def setUpModule():
        print('集成测试 >>>>>>>>>>>>>>开始')
    def tearDownModule():
        print("集成测试 >>>>>>>>>>>>>>结束")
class TestUM1(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        print("Test Class Start ----->")
    @classmethod
    def tearDownClass(cls):
        print("Test Class End ----->")
    def setUp(self):
        print("setUp start=========>")
    def tearDown(self):
        print("==== END ! ====")
#=====测试用例========
    def test_numbers(self):
        print('1test_numbers')
        self.assertEqual(multiply(5,6),30)
    def test_strings(self):
        print('2test_strings')
        assert multiply('b',2) == 'bb'
class TestUM2(unittest.TestCase):
    def test_3(self):
        print('3test_3')
if __name__ == '__main__':
    unittest.main()

执行结果:

  1. 集成测试 >>>>>>>>>>>>>>开始  
  2. Test Class Start ----->  
  3. setUp start=========>  
  4. 1test_numbers  
  5. ==== END ! ====  
  6. setUp start=========>  
  7. 2test_strings  
  8. ==== END ! ====  
  9. Test Class End ----->  
  10. 3test_3  
  11. 集成测试 >>>>>>>>>>>>>>结束
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

释梦燃

你的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值