• unittest单元测试框架


    unittest

    unittest单元测试框架,主要由四部分组成:测试固件、测试用例、测试套件、测试执行器

        【测试固件】有两部分,执行测试前的准备部分setUp(),测试执行完后的清扫部分tearDown()

        【测试用例】中,包含测试固件(可以不写),具体的测试代码的函数。unittest会自动识别test开头的函数是测试代码,一定要用小写的test开头!

        很多测试用例的集合就是【测试套件】,unittest.TestSuite()初始化一个测试套件Suite实例后使用suite.addTest(类名('test_测试函数'))加载测试方法到测试套件中(最常用的是使用discover()方法可以把指定路径下所有测试方法都加载到测试套件中)

        【测试执行器】test runner用来执行加载的测试用例,可以是单个测试用例,也可以是测试套件

       

        例子一:单个执行测试用例

    import unittest
    
    class lesson(unittest.TestCase):
        def test_case1(self):  # 自动识别小写test作为测试代码
            print("写入test case 1")
    if __name__ == '__main__':
        unittest.main()  # unittest.main()单个执行测试用例
    danyi.py

     

        例子二:执行测试套件

    import unittest
    
     
    
    # 从文件test_case/company/test_getLog加载GetLog类
    
    from test_case.company.test_getLog import GetLog
    
    from test_case.company.test_jiansuo import GetCompanyListR
    
     
    
    # 使用测试套件,添加GetLog类里面的test_getLogN方法
    
    suite = unittest.TestSuite() # 初始化一个测试套件Suite实例
    
    suite.addTest(GetLog('test_getLogN')) # GetLog是类名,test_getLogN是测试函数
    
    suite.addTest(GetCompanyListR('test_ListRetrieval'))
    
     
    
    # 直接在控制台输出
    
    runner = unittest.TextTestRunner()
    
    runner.run(suite)
    taojian.py

        例子三:批量加载的方法执行测试套件

        # 在项目下新建,不要在包里

    import unittest
    
    # 批量加载iscover方法里面有三个参数:case_path:这个是待执行用例的目录-pattern:这个是匹配脚本名称的规则,test*.py意思是匹配test开头的所有脚本-top_level_dir:这个是顶层目录的名称,一般默认等于None就行了
    case_path = r'F:apac-mis-test	est_case'
    discover = unittest.defaultTestLoader.discover(case_path, pattern="test_bianji*.py", top_level_dir=None)
    
    #直接在控制台输出
    runner = unittest.TextTestRunner() #discover加载的用例是list集合,用unittest的TextTestRunner的run去执行。
    runner.run(discover)
    taojian2.py

       

    参考:

    http://www.cnblogs.com/myal/p/9337394.html

    https://www.cnblogs.com/myal/category/1257824.html

       

  • 相关阅读:
    2011大纽约区域赛试题 Decoding EDSAC Data 解题报告
    湘大OJ第1484题 Allocation of Memory
    谈谈对js作用域的理解与疑问,请各位指正。
    Closure Linter工具介绍,挺好用的。
    JSTL标签用法
    守柔WORD编程代码集 CHM版
    返回任意输出月的最后一天
    Spring中MultipartHttpServletRequest实现文件上传
    SPringMVC注解驱动 .
    账号正在另一客户端登录 判断方法
  • 原文地址:https://www.cnblogs.com/lijinglj/p/9641998.html
Copyright © 2020-2023  润新知