unittest测试框架_原来生成测试报告,在Unittest框架中这么简单

79ab181a3c2ace2accb95870c8a19ac9.gif

1

测试套件

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

(1)创建一个测试套件

import unittestsuite = unittest.TestSuite()

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

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

import testcases # 测试用例的模块import unittestsuite = 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 unittestsuite = unittest.TestSuite()loader = unittest.TestLoader()suite.addTest(loader.discover(r"用例文件所在的目录的绝对路径"))

2

Test Runner

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

(1)测试结果

     .:用例通过           

    E:表示代码出错了           

    F:表示不通过

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

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

3

生成测试报告

(1)text类型报告

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

(2)html类型报告

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

完整代码为:

import timeimport osimport unittestfrom 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文件放在scriptsreport_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)
0a6ca89466afc715e06e3f1d6d8adfac.gif

32efc36e99cbb484b61489194faa7ad4.png

链接:https://www.cnblogs.com/kite123/p/13786959.html

本文为51Testing经授权转载,转载文章所包含的文字来源于作者。如因内容或版权等问题,请联系51Testing进行删除

推荐阅读

点击阅读☞原来用Unittest框架写接口测试用例这么简单!

点击阅读☞Selenium自动化测试之Unittest单元测试框架的使用!

点击阅读☞Unittest加载执行用例的7种方法总结!

点击阅读☞Python Unittest 根据不同测试环境跳过用例详解

点击阅读☞unittest框架的注意点

89c1255e100f953bde74e500c9b9a101.gif

c0950404b40ae46e293c53e1cc693133.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值