
正文
UnitTest 用法
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
功能
1.能组织多个用例去执行
2.提供丰富的断言方法
3.提供丰富的日志与测试结果
核心要素
1.TestCase
2.TestSuite
3.TextTestRunner
4.Fixture
用法1.TestCase
import unittest
'''
类,方法必须以test开头
'''def add(a,b):
return a+bclass 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()
import unittest
'''
类,方法必须以test开头
'''def add(a,b):
return a+bclass 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, TestCase02suite=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+bclass 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







