【python】unit test框架
unittest组成
- TestCase (最核心的模块)
测试用例,每个TestCase 都是一个代码文件,在这个代码文件中来书写真正的用例代码。 - TestSuite
测试套件,用来管理、组装(打包)多个TestCase - TestRunner
测试执行,用来执行TestSuite - TestLoader
测试加载,对TestSuite的补充 - Fixture
测试夹具,书写在TestCase 代码中,是一个代码结构,可以在每个方法执行前后都会执行的内容
TestCase
创建demo.py
# 1.导包
import unittest
# 2.自定义测试类,需要继承unittest模块中的TestCase类
class TestDemo(unittest.TestCase):
# 3.书写测试方法
# 书写要求:测试方法必须以test_开头
def test_method1(self):
print('测试方法1')
def test_method2(self):
print('测试方法2')
# 4.执行用例(方法)
# 4.1将光标放在类名的后边运行
# 4.2将光标放在方法名的后边运行,只执行当前的方法
TestSuite & TestRunner
创建demo1.py,demo2.py
创建suite_runner.py
# 1.导包
import unittest
from demo1 import TestDemo1
from demo2 import TestDemo2
# 2.实例化(创建对象)套件对象
suite = unittest.TestSuite()
# 3.使用套件对象添加用例方法
# 方式1:套件对象.addTest(测试类名('方法名'))
suite.addTest(TestDemo1('test_method1'))
suite.addTest(TestDemo1('test_method2'))
suite.addTest(TestDemo2('test_method1'))
suite.addTest(TestDemo2('test_method2'))
# 方式2:将一个测试类中的所有方法进行添加 套件对象.addTest(unittest.makeSuite(测试类名))
suite.addTest(unittest.makeSuite(TestDemo1))
suite.addTest(unittest.makeSuite(TestDemo2))
# 4.实例化运行对象
runner = unittest.TextTestRunner()
# 5.使用运行对象去执行套件对象
runner.run(suite)
查看用例结果
运行结果中 . 用例通过,F 用例不通过, E error 用例代码有问题
TestLoader
创建tools.py
def add(a, b):
return a + b
创建test,test1,test2
import unittest
from tools import add
class TestAdd(unittest.TestCase):
def test_method1(self):
if add(1, 2) == 3:
print('测试通过1')
else:
print('测试不通过2')
def test_method2(self):
if add(10, 20) == 30:
print('测试通过1')
else:
print('测试不通过2')
def test_method3(self):
if add(2, 2) == 5:
print('测试通过1')
else:
print(&