unittest套件与运行器及测试报告实现

    最近学习python自带测试工具unittest,学到用其中的套件和运行器,在用HTMLTestReport实现测试报告时发现不太会用,网上使用教程比较少,所以记录一下

        
        1、下图是test_suite_runner.py文件,作用是实现测试套件的运行及测试报告实现代码,测试用例在其他py文件中
'''
Unittest套件与运行期
第三方测试报告生成
'''
import os
import unittest

from HTMLTestRunner import HTMLTestRunner
from htmltestreport import HTMLTestReport

'''
测试套件(使用场景:例如冒烟测试)--测试套件可以帮助我们灵活管理我们所需要执行的测试用例,以及批量管理测试用例。

    测试套件的应用:
        1、需新建一个py文件来执行套件的代码逻辑,否则套件无法生效
        2、套件添加测试用例。在执行时依据套件中的测试用例来进行执行
        3、如果要运行套件中的测试用例。则必须使用runner运行器来执行测试套件
        4、测试套件用例执行顺序,是基于添加用例的顺序执行,不是依据unittest的排序规则来进行

    运行器:
        1、TextTestRunner是unittest下自带的默认运行器,用于将测试结果展示在控制台中
        2、执行结果中.表示成功,F表示失败,E表示Error
        3、可以通过在runner中设置verbosity参数,来实现测测试结果的详细度展示
        4、运行器其实就是测试报告。支持第三方的测试报告runner的调用。目前主流是HTMLTestRunner、HTMLReportCN
'''

# 创建套件
suite = unittest.TestSuite()

'''
添加套件的几种不同方式
    1、通过用例名称来实现对用例的添加
    2、通过list将测试用例全部传入套件中,批量添加
    3、通过class来实现用例的添加
    4、通过py文件实现用例添加
    5、通过discover,结合路径的方式来实现用力的批量管理,推荐使用这种,本文也是使用这种

'''

# 1、通过用例名称来实现添加
# suite.addTest(TestDemo1('test_2'))
# suite.addTest(TestDemo1('test_1'))

# 2、批量添加
# cases = [TestUnit1('test_01'),TestUnit1('test_03'),TestUnit1('test_02')]
# suite.addTests(cases)

# 3、通过class来添加测试用例
'''
另外,基于class来实现对用例的添加:class中的测试用例会全部添加,但是执行时还是基于UnitTest的排序规则来执行
'''
# suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestDemo1))

# 4、通过py文件方式添加用例
# cases = ['test_demo1.TestDemo1','test_demo2']
# suite.addTests(unittest.TestLoader().loadTestsFromNames(cases))

# 5、基于discover,路径的方式来实现用例的批量管理
path = './'  # 获取用例路径
discover = unittest.defaultTestLoader.discover(start_dir=path,  # 获取用例的起始路径
                                               pattern='test_*.py')  # 获取用例的设置条件,获取以test_开头,py结尾的所有用例
'''
discover可以直接被执行,因为discover方法返回一个测试套件
'''

# 创建runner
if __name__ == '__main__':

    # 配置测试报告的相关基本项
    report_dir = './report/'  # 测试报告的保存路径
    report_file = report_dir + 'reportCN.html'  # 测试报告的名称,记得需要添加保存路径
    report_title = '测试报告的标题'
    report_description = '这是测试报告的描述信息'

    # 检查路径是否存在,不存在则生成路径(如果路径不存在测试报告是无法正常生成的)
    if not os.path.exists(report_dir):
        os.mkdir(report_dir)

    '''# HTMLTestRunner测试报告实现'''
    # HTMLTestRunner实现测试报告,其实就是对文件进行写入的一种方式
    with open(report_file, 'w', encoding='utf-8') as file:
        runner = HTMLTestRunner.HTMLTestRunner(stream=file, verbosity=2, title=report_title,
                                               description=report_description)
        runner.run(discover)

    '''# HTMLTestReportCN测试报告实现'''
    runner = HTMLTestReport(report_file, report_title, report_description)
    runner.run(discover)
        2、项目结构图参考,生成的报告在report文件夹下

                

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值