zoukankan      html  css  js  c++  java
  • unittest框架加载执行测试用例并生成报告

    I.测试套件(Test Suite):是测试用例、测试套件或两者的集合,用于组装一组要运行的测试(多个测试用例集合在一起)

    (1)创建一个测试套件

    import unittest
    suite = unittest.TestSuite()

    (2)将测试用例,加载到测试套件中

    • 通过模块或测试用例类加载

      import testcases # 测试用例的模块
      import unittest
      
      suite = unittest.TestSuite() # 创建测试套件
      loader = unittest.TestLoader() # 用来加载TestCase到TestSuite中的
      suite.addTest(loader.loadTestsFromModule(testcases)# 模块加载
      suite.addTest(loader.loadTestsFromTestCase(testcases.类名)) # 用例类加载
    • 添加单条测试用例:suite.addTest(类名("用例方法名"))

    • 指定测试用例的所在的目录路径,进行加载()

      • discover(start_dir,pattern = "test*.py”,top_level_dir = None):start_dir:待测试的模块名或测试用例目录;pattern= "test*.py”:测试用例文件名的匹配原则;top_level_dir = None:测试模块的顶层目录,默认None

    import unittest
    
    suite = unittest.TestSuite()
    loader = unittest.TestLoader()
    suite.addTest(loader.discover(r"用例文件所在的目录的绝对路径"))

    II.Test Runner:用于协调测试的执行并(通过图形界面、文本界面、返回特殊值)向用户提供结果

    (1)测试结果:     .:用例通过           E:表示代码出错了           F:表示不通过

    (2)使用启动器,执行测试套件

    runner = unittest.TextTestRunner() # 测试运行程序--->用来执行测试用例的
    runner.run(suite)

    III. 生成测试报告

    (1)text类型报告

    with open(“test_report.txt","w") as f:
        runner = unittest.TextTestRunner(f)
        runner.run(suite)

    (2)html类型报告

    from HTMLTestRunnerNew import HTMLTestRunner
    runner = HTMLTestRunner(stream=open("test_report.html", "wb"),  # 打开一个报告文件,将句柄传给stream
                            tester="xxx",                    # 报告种显示的测试人员
                            description="测试报告描述,        # 报告种显示描述信息
                            title="测试报告标题")                 # 报告的标题
    
    # 方法2
    with open('test_report.html','wb') as file:
        runner = HTMLTestRunner(stream=file,
                                tester = 'xxxx', # 报告种显示的测试人员
                                title='测试报告标题', # 报告的标题
                                description='测试报告描述' )  # 报告种显示描述信息
    
        runner.run(suite)

    完整代码为:

    import time
    import os
    import unittest
    from com.contants import CASE_DIR # 测试用例模块路径
    from com.contants import REPORT_DIR # 测试报告路径
    from com.myconf import conf # 读取配置文件(测试报告配置信息)
    from library.HTMLTestRunnerNew import HTMLTestRunner # 生成测试报告
    from com.sendemail import send_email
    
    
    # 1.创建测试套件
    suite = unittest.TestSuite()
    
    # 2. 加载TestCase到TestSuite中
    # 创建对象加载
    loader = unittest.TestLoader()
    
    # # (1)通过模块加载
    # suite.addTest(loader.loadTestsFromModule(test_case))
    
    # # (2)通过测试用例类加载
    # suite.addTest(loader.loadTestsFromTestCae(test_case.类名))
    #
    # # (3)添加单条测试用例,不需要loader对象方法
    # #  注意:通过用例类去创建测试用例对象时,需传入用例的方法名(字符串类型)
    # suite.addTest(类名("用例方法名"))
    
    # (4)指定测试用例的所在的目录路径,进行加载()
    suite.addTest(loader.discover(CASE_DIR))
    
    
    # 测试运行程序--->用来执行测试用例的
    # 方法1
    # runner = unittest.TextTestRunner()
    # 方法2:将HTMLTestRunner文件放在scripts
    
    report_name =  time.strftime('%Y-%m-%d %H_%M') + conf.get('report','reportname')
    report_path = os.path.join(REPORT_DIR,report_name)
    
    
    with open(report_path,'wb') as file:
        runner = HTMLTestRunner(stream=file, # 文件名
                                tester = conf.get('report','tester'), # 报告种显示的测试人员
                                title= time.strftime('%Y-%m-%d %H_%M_%S') + conf.get('report','title'), # 报告的标题
                                description=conf.get('report','description') )  # 报告种显示描述信息
    
        runner.run(suite)
    
    # 发送测试报告
    send_email(report_path,report_name)
  • 相关阅读:
    风云受邀参加CMAX2009技术峰会演讲嘉宾
    银光志—Silverlight 3.0技术详解与最佳实践上架中文亚马逊卓越网和当当网
    Silverlight进度条控件动画源代码
    Silverlight4 Tools下载
    在C#代码中获取Silverlight的初始化initparams参数
    css层的定位position、absolute、relative层叠加的五条叠加法则
    《银光志—Silverlight3.0技术详解与最佳实践》仅上架两周排名互动出版网第三名
    《银光志Silverlight 3.0开发详解与最佳实践》出版电子版——风云编著
    银客帝国招聘Silverlight兼职开发人员
    Silverlight 2使用C#遍历XML(兼容Silverlight3)
  • 原文地址:https://www.cnblogs.com/kite123/p/13786959.html
Copyright © 2011-2022 走看看