首页 > 代码库 > Python 中的 unit test 流程

Python 中的 unit test 流程

Python 中的 unit test 流程

看了看Python中的单元测试流程, 写了个测试代码来看整体的测试流程

总结如下

  • 一个 test case 类应该派生自 unittest.TestCase
  • 正常的的test case的调用顺序为

  • 子类TestCase可以注册自己的清理函数(my_cleanup). 这个清理函数会在teardown之后被调用
    def setUp(self):
        super(MyTestCase, self).setUp()
        self.addCleanup(self.my_cleanup)
  • 单元测试函数名必须以"test_"开始
    def test_case_1(self):
        print("++++ test case 1")


测试的源代码:

from __future__ import print_function
import unittest

def setUpModule():
    print("setUpModule")
 
def tearDownModule():
    print("tearDownModule")
    
class MyTestCase(unittest.TestCase):

    def setUp(self):
        super(MyTestCase, self).setUp()
        self.addCleanup(self.my_cleanup)
        
        print()
        print("++++ setup")

    def tearDown(self):
        super(MyTestCase, self).tearDown()
        print("++++ tearDown")
        raise Exception()
        
    def my_cleanup(self):
        print("++++ my_cleanup")
        
    def test_case_1(self):
        print("++++ test case 1")

    def test_case_2(self):
        print("++++ test case 2")
          
    @classmethod
    def setUpClass(cls):
        print("setUpClass")

    @classmethod
    def tearDownClass(cls):
        print()
        print("tearDownClass")


这个程序的运行结果:

setUpModule
setUpClass

++++ setup
++++ test case 1
++++ tearDown
++++ my_cleanup

++++ setup
++++ test case 2
++++ tearDown
++++ my_cleanup

tearDownClass
tearDownModule



Python 中的 unit test 流程