unittest框架

一、unittest

 

import unittest
def add(a,b):
    return  a+b
#继承unittest.TestCase类
class TestCase01(unittest.TestCase):
    #在每条用例执行前执行
    def setUp(self):
        print("setUp")
    #在每条用例执行后执行
    def tearDown(self):
        print("tearDown")
    #方法名必须以test开头
    def testcase_01(self):
        print("testcase_01")
        print("1 + 1 = ",add(1,1))
        self.assertEqual(2, add(1, 2))
    def testcase_02(self):
        print("testcase_02")
        print("2 + 2 = ", add(2, 2))
    def testcase_03(self):
        print("testcase_03")
        print("3 + 3 = ", add(3, 3))

class TestCase02(unittest.TestCase):
    #方法名必须以test开头
    def testcase_01(self):
        print("TestCase02_testcase_01")
    def testcase_02(self):
        print("TestCase02_testcase_02")

    def testcase_03(self):
        print("TestCase02_testcase_03")

if __name__ == '__main__':
    unittest.main()

 

光标放在class上就执行class里面的全部方法,如果放在testcase_01上,就两个都执行,放在testcase_02上就只执行testcase_02

二、TestSuite

(1)以测试用例类里的每个方法为单位添加
import unittest
from demo01 import TestCase01, TestCase02

suite = unittest.TestSuite()
suite.addTest(TestCase01("testcase_01"))
suite.addTest(TestCase01("testcase_02"))
suite.addTest(TestCase01("testcase_03"))
suite.addTest(TestCase02("testcase_01"))
suite.addTest(TestCase02("testcase_02"))
suite.addTest(TestCase02("testcase_03"))
runner = unittest.TextTestRunner()
runner.run(suite)

 

 

 (2)以测试用例类为单位添加

import unittest
from demo01 import TestCase01, TestCase02

suite = unittest.TestSuite()
#以测试用例类为单位添加
suite.addTest(unittest.makeSuite(TestCase01))
suite.addTest(unittest.makeSuite(TestCase02))

runner = unittest.TextTestRunner()
runner.run(suite)

 

 

 三、TestRunner

 

 

 四、defaultTestLoader

 

import unittest

#test_dir为要指定的目录 ./为当前目录;pattern:为查找的.py文件的格式(只运行test开头的方法)
discover = unittest.defaultTestLoader.discover(r"D:\demo\reptile_demo\case",pattern='test*.py')  #查找所有case文件夹下test开头的py文件

runner = unittest.TextTestRunner()
runner.run(discover)

 

posted @ 2020-09-16 15:19  Eliphaz  阅读(133)  评论(0编辑  收藏  举报