zoukankan      html  css  js  c++  java
  • unittest生成测试报告

    此版本的运行和安装环境是在linux下,使用vscode配置的

    首先准备好测试代码

    以下是简单的一份

     1 import unittest
     2 import HTMLTestRunner
     3 
     4 
     5 class TestCalc(unittest.TestCase):
     6     def testcc(self):
     7         '''this is first case'''
     8         self.assertEqual(1, 1)
     9         print('first case')
    10 
    11     def testaa(self):
    12         '''this is second case'''
    13         self.assertEqual(2, 2)
    14         print('second case')
    15 
    16     def testdd(self):
    17         '''this is third case'''
    18         print('third case')
    19 
    20     def testbb(self):
    21         '''this is forth case'''
    22         print('forth case')
    23 
    24 
    25 if __name__ == "__main__":
    26     # HTMLTestRunner.main()
    27     suite1 = unittest.TestSuite()
    28     suite1.addTest(TestCalc("testaa"))
    29     suite1.addTest(TestCalc("testcc"))
    30 
    31     with open("SenderResult.txt", "a") as f:
    32         TXT_runner = unittest.TextTestRunner(stream=f, verbosity=2)
    33         TXT_runner.run(suite1)
    34 
    35     suite2 = unittest.TestSuite()
    36     suite2.addTest(TestCalc("testaa"))
    37     suite2.addTest(TestCalc("testcc"))
    38     f = open('Easy_test.html', 'wb')
    39     runner = HTMLTestRunner.HTMLTestRunner(
    40         stream=f,
    41         title='unittest case title',
    42         description='this is case description')
    43     runner.run(suite2)
    44     f.close()

    模块 是使用了pip3 install HTMLTestRunner之后自动安装的,然后去python的安装目录lib,查看是否有HTMLTestRunner.py文件,没有的话要下载一份放在lib目录下

    然后要把HTMLTestRunner.py这个文件的一些内容修改一下才可以运行不报错

     具体的修改内容如下:

    第94行,将import StringIO修改成import io

    第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()

    第642行,将if not rmap.has_key(cls):修改成if not cls in rmap:

    第766行,将uo = o.decode('latin-1')修改成uo = e

    第775行,将ue = e.decode('latin-1')修改成ue = e

    第631行,将print >> sys.stderr, ' Time Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, ' Time Elapsed: %s' % (self.stopTime-self.startTime))

    好看一些的报告资源:

    https://pypi.org/project/html-testRunner/

    或直接用pip安装:pip3 install html-testRunner

    注意:

    每一个class类都会生成一份报告,所以运行一次py文件,有几个测试类就会生成几份报告

    把几份报告合并到一起的办法:

    cat A.html B.html >> NEW.html

    这种合并的方式不止适用于html,text文件也适用(Windows上把cat换成copy即可)

    报错:

    1.报错仍找不到模块HTMLTestRunner

    我的解决方法是暂且把HTMLTestRunner.py这个文件放到脚本的同级目录中去直接调用

    2.文件运行成功但并没有生成html的报告

    是由于(在linux上的vscode中编辑的)没有把报告生成的路径指明,用绝对路径指明报告位置后就成功生成了html报告

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法训练 排列问题
    Java实现 蓝桥杯VIP 算法训练 排列问题
    Java实现 蓝桥杯VIP 算法训练 排列问题
    Java实现 蓝桥杯VIP 算法训练 排列问题
    关于模态/非模态对话框不响应菜单的UPDATE_COMMAND_UI消息(对对WM_INITMENUPOPUP消息的处理)
  • 原文地址:https://www.cnblogs.com/RuiRuia/p/13912898.html
Copyright © 2011-2022 走看看