python单元测试框架unittest简单使用实例

初学菜鸟做的笔记,仅供参考,欢迎指正。

1. 先写一段简单的代码,用于测试。单元测试的本质是对类、函数做测试,所以写了个简单的类用于测试;

class MathMethod:
    def add(self,a,b):
        return a+b

    def sub(self,a,b):
        return a-b

2. 对步骤1中的代码进行单元测试编码:

第一版代码没有进行参数化,第二版进行了参数化及测试结果输出(见第3个步骤);

只展示了第二版,详情见代码注释;

import unittest # 导入unittest库
from mathfortest import MathMethod # 模块引入

class TestMathMethod(unittest.TestCase): # 创建一个类,继承unittest.TestCaseunittest.TestCase
    def __init__(self,methodname,a,b,expd): # 超继承,重写类,引入参数
        super(TestMathMethod, self).__init__(methodname) # 理解之前,记住写法
        self.a=a
        self.b=b
        self.expd=expd

    def test_add(self): # 测试MathMethod类中的加法用例
        res=MathMethod().add(self.a,self.b) # 创建一个MathMethod的实例res,并调用了其中的add方法,传递参数a,b
        print("相加等于----------------",res) # 打印实际值 res
        self.assertEquals(self.expd,res) # 做断言,对比实际值res与期望值expd


    def test_sub(self): # 测试MathMethod类中的减法用例
        res=MathMethod().sub(self.a,self.b) # 创建一个MathMethod的实例,并调用了其中的sub方法,传递参数a,b
        print("相减等于----------------",res) # 打印实际值 res
        self.assertEquals(self.expd,res) # 做断言,对比实际值res与期望值expd

if __name__ == '__main__': # TestMathMethod类的入口,做调用,不写不能调用,记住先
    unittest.main()

3. 写一段测试结果输出的代码,文本格式及网页格式;

import unittest # 导入unittest库
from HTMLTestRunner import HTMLTestRunner  # 导入HTMLTestRunner中的HTMLTestRunner方法
from baili_test2 import TestMathMethod # 导入baili_test2中的TestMathMethod类

suite=unittest.TestSuite() # 收集测试用例的写法

# #第一种方法,在单元测试用例代码还没有做参数化时使用的
# loader=unittest.TestLoader()
# suite.addTest(loader.loadTestsFromTestCase(TestMathMethod)) # 加载测试用例

# 第二种方法, 单元测试用例代码已参数化用这种方法
suite.addTest(TestMathMethod('test_add',0,0,0)) # 传参并加载测试用例
suite.addTest(TestMathMethod('test_sub',3,1,2))

# 生成测试报告
# 文本格式的报告
# file=open('test_result_1.txt','w+')
# runner=unittest.TextTestRunner(stream=file,verbosity=2)

# 网页格式报告
file=open('test_result_1.html','w+', encoding='utf-8') # 记住写法,指定编码解决中文乱码问题
runner=HTMLTestRunner.HTMLTestRunner(stream=file,  verbosity=2) # verbosity=2 指定报告的详略程度
runner.run(suite)

4. 在pycharm左侧找到test_result_1.html文件,在浏览器中打开,可查看测试报告。

posted @ 2022-02-11 10:11  hello_mercy  阅读(396)  评论(0编辑  收藏  举报