-
python的标准库模块unittest 库,实现单元测试
-
测试用例框架简要描述
- 测试用例类要继承unittest.TestCase 【class TestClass(unittest.TestCase)】形式
- 测试类里的测试用例名称命名以testxxx的方式命名,以test开头
- setup()在每个用例执行前执行,做一些数据初始化的动作
- teardown()在每个用例执行后执行,用于销毁一些数据动作
- 可以使用testcase 中的asset xxx 进行断言判断来校验用例结果
- 测试套件:如果没有使用测试套件,在主函数中执行,就执行所有的测试用例,使用套件后可以针对每个用例进行嵌套,单个执行
- 测试套件 unittest.TestSuite类,from unittest.runner import TextTestRunner
- unittest 简单框架代码构成
import unittest
from unittest.runner import TextTestRunner
# 需要测的工具类
class classtest:
pass
#执行代码,也就是要测试的单元类
class calssunittest(unittest.TestCase):
# 测试项初始化方法
def setUp(self):
pass
# 测试项结束时调用
def tearDown(self):
pass
# 测试classtest的sum方法
def testSum(self):
print("测试用例")
# 断言相等
self.assertEqual("执行结果", "预期结果")
def testbolen(self):
print("testOthers...")
# 断言真假
self.assertTrue("判断条件")
self.assertFalse("判断条件")
# 断言抛出异常
with self.assertRaises(TypeError):
pass
# 定义一个测试套件
def testrunner():
suite = unittest.TestSuite()
# 往测试套件里新增用例类下的所有测试项
suite.testSum(unittest.makeSuite(calssunittest))
# 执行测试套件
runner = TextTestRunner()
ret = runner.run(suite)
print(ret)
if __name__ == '__main__':
testrunner()
##备注说明:如果我们有多个测试文件要进行执行时,我们需要进行全测试类下的测试文件执行
#定义一个主运行函数,建立一个runner的python 文件,设置用例执行入库
def run_main():
case_path = os.getcwd() #获取程序目录
case_file= unittest.defaultTestLoader.discover(case_path,pattern="test_*".py)#匹配测试文件
runner=unittest.TextTestRunner(verbosity=2) #设置执行级别
runner.run(case_file)
if __name__ == '__main__':
unittest.main() # 用例执行入口