1、框架图:
2、主要组件
TestCase:用来写用例,一个TestCase就是一个测试用例
TestSuite:集合或套件,多个测试用例的集合就是 suite,一个 suite 可以包含多个 测试用例,也可以嵌套 suite
TestLoader:用来加载 testcase 到 testsuite 中的
TextTestRunner:执行测试用例,将结果保存在TestResult中
TestResult:存放测试报告
TestFixture:一个测试用例环境的搭建和销毁
3、用例的添加和使用
3.1TestCase创建用例
import unittest
from math_method import MathMethod#math_method中MathMethod是我们自己定义的文件中的函数
class TestAdd(unittest.TestCase):
#测试用例:test开头
def test_001(self):#测试2个0相加
print('test_001')
expected=0#期望值
res=MathMethod().add(0,0)#实际值 add、sub都是在MathMethod中我们自己定义的方法
#断言
self.assertEqual(expected,res)
def test_002(self):
print('test_002')
excepted=-2
res = MathMethod().add(1,-3) # 实际值
self.assertEqual(excepted,res)
class TestSub(unittest.TestCase):
#测试用例:test开头
def test_001(self):#测试2个0相减
print('test_001')
expected=0#期望值
res=MathMethod().sub(0,0)#实际值
#断言
self.assertEqual(expected,res)
def test_002(self):
print('test_002')
excepted=4
res = MathMethod().sub(1,-3) # 实际值
self.assertEqual(excepted,res)
3.2 TestSuite、TestLoader 用例加载到套件里面
import unittest
#第一种方法 一个一个的去添加用例
from week_6.class_0321.learn_unittest import *
#存储用例的容器suite 套件
suite=unittest.TestSuite()#创建了一个对象
suite.addTest(TestAdd('test_001'))#添加测试用例到suite这个套件里面
suite.addTest(TestAdd('test_002'))
suite.addTest(TestSub('test_001'))
#第二种方法通过loader来加载用例 通过模块来加载用例
from week_6.class_0321 import learn_unittest
loader=unittest.TestLoader()#用例的加载器
suite.addTest(loader.loadTestsFromModule(learn_unittest))
#第三种通过loader来加载用例 根据测试类名来加载用例
from week_6.class_0321.learn_unittest import *
loader=unittest.TestLoader()#用例的加载器
suite.addTest(loader.loadTestsFromTestCase(TestAdd))
3.3 TextTestRunner执行用例
runner=unittest.TextTestRunner()#创建一个对象来执行用例
runner.run(suite)