UnitTest 用法

功能

1.能组织多个用例去执行

2.提供丰富的断言方法

3.提供丰富的日志与测试结果

核心要素

1.TestCase

2.TestSuite

3.TextTestRunner

4.Fixture

用法

1.TestCase

import unittest
'''
类,方法必须以test开头
'''

def add(a,b):
    return a+b

class TestCase01(unittest.TestCase):
    def testcase_01(self):
        print("testcase_01")
        print(add(2,2))
        self.assertEqual(3,add(2,2))

    def testcase_02(self):
        #alt +鼠标连选,一起修改
        print("testcase_02")

    def testcase_03(self):
        print("testcase_03")
        print(add(3,2))

class TestCase02(unittest.TestCase):
    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__':
    #用main来执行,多线程没有规律
    unittest.main()

该文件可以执行单个测试用例,鼠标选中要执行的用例,右键,

 

 

也可以整个类一起执行,鼠标点中要执行的class,右键选择上图同样的按钮

还可以整个文件一起运行,利用main函数

 

 2.TestSuite,3.TextTestRunner

挑选用例执行,最大范围是测试类

TextTestRunner执行测试用例

import unittest
#导入类
from unitTest.testcase import TestCase01, TestCase02

suite=unittest.TestSuite()
#添加测试用例:以测试用例类中的每一种方法为单位进行添加
suite.addTest(TestCase02("testcase_02"))

#添加测试用例:以测试用例类为单位进行添加
suite.addTest(unittest.makeSuite(TestCase01))
#cltrl+d 复制粘贴

#利用TextTestRunner运行测试用例
runner=unittest.TextTestRunner()
runner.run(suite)
总结:
以测试用例类中的每一种方法为单位进行添加
suite.addTest(TestCase02("testcase_02"))
以测试用例类为单位进行添加

 

suite.addTest(unittest.makeSuite(TestCase01))

4、discover

挑选用例执行,可以选择python文件

import unittest

#用例文件的路径  ./cases 路径,test*.py 执行操作的文件
discover = unittest.defaultTestLoader.discover("./cases",pattern='test*.py')
runner=unittest.TextTestRunner()
runner.run(discover)

 

5、断言

import unittest
'''
类,方法必须以test开头
'''

def add(a,b):
    return a+b

class TestCase01(unittest.TestCase):
    def testcase_01(self):
        print("testcase_01")
        print(add(2,2))
        try:
            self.assertEqual(4,add(1,2))
        except AssertionError as e:
            print("报错信息",e)
            raise

 

posted @ 2020-08-13 11:43  程程111  阅读(182)  评论(0编辑  收藏  举报