Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 742|回复: 0

Unittest+HTMLTestRunner不能生成报告解决方法和报告安装使用

[复制链接]
  • TA的每日心情
    奋斗
    3 天前
  • 签到天数: 802 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726006
    发表于 2021-7-2 16:11:47 | 显示全部楼层 |阅读模式

    -Unittest+HTMLTestRunner不能生成报告解决方法

     

    1、问题现象

        在使用HTMLTestRunner生成测试报告时,出现程序运行不报错,但不能生成报告的情况。

        刚开始找了很久没发现问题,后来加上打印信息,发现根本没执行生成报告这部分代码。最后网上找到原因:pycharm 在运行测试用例的时候 默认是以unittest 框架来运行的,所以不能生成测试报告。

    需要设置成不要用unittest框架运行:

    HTMLTestRunner.pyw文件经过修改的,需要下载:链接:https://pan.baidu.com/s/1BtF4Xus3kecI8qfTAy4z7w
    提取码:2gtj

    复制代码
     
     
    #unittest测试框架
    #pytest比unittest全面一点
    #导包
    import requests#导入接口用的包
    import unittest
    from pyJIAO.APP.APP.aa.baogao4 import Test01

    from test1.PO3.zhiliao.HTMLTestRunnerNew import HTMLTestRunner
    import time

    class Test(unittest.TestCase):
    # 用于测试用例执行前的初始化工作
    def setUp(self):
    print("test start")

    def test_bbb(self):
    print("test bbb")

    # 用于测试用例执行之后的善后工作
    def tearDown(self):
    print("test end")

    if __name__ == '__main__':
    # 实例化测试套件
    suite = unittest.TestSuite()
    # 加载测试用例
    suite.addTest(Test("test_bbb"))
    #获取当前时间
    now = time.strftime("%Y-%m-%d %H_%M_%S")
    # 定义报告存放路径
    filename = now + 'result.html'
    #报告存放在当前目录
    fp = open(filename, 'wb')
    # 定义测试报告
    runner = HTMLTestRunner(stream=fp, title='测试报告', description='用例执行情况:')
    runner.run(suite)
    fp.close() # 关闭报告文件
     
    复制代码

     

    2、如何判断是否以unittest框架运行?

      如下,只要运行环境是unittest in ...的,就都是以unittest框架运行的

     

    3、解决方案

      只要不以unittest框架方式运行就可解决不能生成报告的问题。可自己新增一个不以unittest框架方式运行的环境。

     

     

     

    1)如下点击edit configurations-->选中python-->点击+

    2)点击python

    3)填写环境名称和脚本路径

     

     

     

     

    4)选择步骤三种新增的环境,运行脚本,即可生成报告

     

     

     5、用HTMLTestRunner必须下载好文件放到python的lid目录也行,直接放到更目录也行,最终是要导入的:

     

     

     

    二、还有一种比HTMLTestRunner跟加好用的,BeautifulReport

    安装下载:一个报告:pip install BeautifulReport

    执行代码如下:

    import unittest
    from BeautifulReport import BeautifulReport

    if __name__ == '__main__':
    test_suite = unittest.defaultTestLoader.discover('E:\\pythonJIAO\\test1\\jiekou\\scripts', pattern='jieko*.py')
    result = BeautifulReport(test_suite)
    result.report(filename='测试报告', description='测试deafult报告', report_dir='E:\\pythonJIAO\\test1\\PO3\\scripts', theme='theme_default')

    """


    BeautifulReport.report
    report (
    filename -> 测试报告名称, 如果不指定默认文件名为report.html
    description -> 测试报告用例名称展示
    report_dir='.' -> 报告文件写入路径
    theme='theme_default' -> 报告主题样式 theme_default theme_cyan theme_candy theme_memories
    )

    BeautifulReport.add_test_img

    """
    生成的报告是不是比较好看:

     

    三、用pytest生成报告最方便,报告如下,具体看另外文章
    pytest生成报告的插件:    pip install pytest-html
    安装pytest和allure:    pip install pytest   和  pip install allure-pytest
    查看:pip list

    生成报告命令:pytest --html=report/report.html

     

     

     

     
    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-11-14 15:41 , Processed in 4.998373 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表