UnitTest框架核心要点:TestCase(测试用例)、TestSuite(测试套件)、TextTestRunner(测试执行器)、TextTestResult(测试报告)、Fixture(测试夹具)
TestSuite 步骤:
步骤1:导包—>import unittest
步骤2:创建测试套件
步骤3:添加用例
步骤4:创建运行器 runner = unittest.TextTestRunner()
步骤5:执行用例 :runner.run(suite)
TestCase(测试用例)
mathfunc.py
# 创建+-*/的方法
def add(a,b):
return a + b
def minus(a,b):
return a - b
def multi(a,b):
return a * b
def divide(a,b):
return a / b
mytest_01.py
import unittest
from mathfunc import add,minus
# 写测试用例(继承mathfunc中写好的函数)
class add_minus_test(unittest.TestCase):
def test_add(self):
print(add(2,3))
def test_minus(self):
print(minus(5,3))
测试结果:ok
mytest_02.py
import unittest
from mathfunc import multi,divide
class multi_divide_test(unittest.TestCase):
def test_multi(self):
print(multi(3,6))
def test_divide(self):
print(divide(3, 6))
测试结果:ok
myTestSuite.py
import unittest
from mytest_01 import add_minus_test
from mytest_02 import multi_divide_test
# 创建测试套件
suite = unittest.TestSuite()
# 添加用例
# + *
suite.addTest(add_minus_test("test_add"))
suite.addTest(multi_divide_test("test_multi"))
# - /
suite.addTest(add_minus_test("test_minus"))
suite.addTest(multi_divide_test("test_divide"))
# 创建运行器
runner = unittest.TextTestRunner()
# 执行用例
runner.run(suite)
测试结果:ok
myTestSuite02.py
import unittest
# 创建测试套件
from mytest_01 import add_minus_test
from mytest_02 import multi_divide_test
suite = unittest.TestSuite()
# 添加用例
suite.addTest(unittest.makeSuite(add_minus_test))
suite.addTest(unittest.makeSuite(multi_divide_test))
# 创建运行器
runner = unittest.TextTestRunner()
# 执行用例
runner.run(suite)
测试结果:ok
myTestSuite03.py
# 法3:通过路径加载
# path指定用例所在的目录
# pattern指定文件名,可以按名字前缀等查找,比如
# UnitTest*.py, 就是加入所有开头能与UnitTest匹配上的py文件中的测试用例
# ./","mytest_*.py "相对路径","测试文件的文件名_*(通配符).py(后缀)"
import unittest
# 创建测试套件
suite = unittest.TestLoader().discover("./","mytest_*.py")
# 创建运行器
runner = unittest.TextTestRunner(verbosity=1)
# 执行用例
runner.run(suite)
测试结果:ok