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