• 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文件,在浏览器中打开,可查看测试报告。

  • 相关阅读:
    Wireshark安装、简单使用、过滤器简介
    iOS中多线程原理与runloop介绍
    iphone客户端上传图片到服务器
    微信公众平台用户分组管理开发文档详解
    微信公众平台开发:进阶篇(Web App开发入门)
    如何使用NSOperations和NSOperationQueues
    IOS 多线程的一些总结
    Fiddler (五) Mac下使用Fiddler
    在其他app里预览文档
    UIWebView加载ANSI格式的txt文件出现乱码问题解决
  • 原文地址:https://www.cnblogs.com/mercycnblog/p/15882040.html
Copyright © 2020-2023  润新知