使用HTMLTestRunner.py生成测试报告

1、如何收集测试结果?
        使用第三方封装好类HTMLTestRunner.py生成HTML测试报告

# encoding:utf-8
import unittest
import time
from HTMLTestRunner import HTMLTestRunner
  
class MyTestCase(unittest.TestCase):
    # 每条用例初始化
    def setUp(self):
        self.initdata = "hello allard"
 
    # 测试用例,以test开头
    def test_something(self):
        self.assertEqual("hello allard", self.initdata)
 
    # 每条用例执行完后释放资源
    def tearDown(self):
        pass
 
 
if __name__ == '__main__':
    # 声明一个suite
    suite = unittest.TestSuite()
    # 从类加载用例集
    cases = unittest.TestLoader().loadTestsFromTestCase(MyTestCase)
    # 添加用例到suite
    suite.addTests(cases)
    # 声明TestRunner
    # myTestRunner = unittest.TextTestRunner(verbosity=2)
 
    # 生成HTML TestReport
    fp = open("testreport.html", "wb")
    myTestRunner = HTMLTestRunner(stream=fp, title=u"测试报告",
                                  description=u"用例测试情况")

    # 执行Runner
    myTestRunner.run(suite)
    # 关闭文件流
    fp.close()

2、如何管理测试报告?
        把所有执行的测试结果都收集起来,以时间戳作为报告的名称,存到某一个路径下就可以实现对Report管理。

# 将上面脚本中“生成HTML TestReport”代码改成如下:
now = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime())
HtmlFile = "report/" + now + "_Report.html"
fp = open(HtmlFile, "wb")
myTestRunner = HTMLTestRunner(stream=fp, title=u"测试报告",
                              description=u"用例测试情况")
# 执行Runner
myTestRunner.run(suite)
# 关闭文件流

另外一种方式

代码文件目录如下

test.py 代码内容

# coding:utf-8

__author__ = 'Jeff.xie'

import importlib
import unittest
from time import sleep
import sys,os
sys.path.append(os.getcwd())

class Test(unittest.TestCase):

    @classmethod
    def setUpClass(self):
        print('start')

    def tearDownClass(self):
        print('finish')

    def test_1(self):
        print(1)
        self.assertEqual(2,2)

    def test_2(self):
        print(2)

    def test_3(self):
        print(3)
        assert  3==4


if __name__ == '__main__':
    suite =unittest.TestSuite()
    suite.addTest(Test('test_2'))  
    suite.addTest(Test('test_1'))
    runner = unittest.TextTestRunner()
    runner.run(suite)

test1.py 代码内容

__author__ = 'Jeff.xie'

import unittest
from study.s_unittest.test import Test

from study.s_unittest.HTMLTestRunner import HTMLTestRunner
# import HTMLTestRunner.HTMLTestRunner as HTML
import sys,os,time
sys.path.append(os.getcwd())

class Test1(unittest.TestCase):
    def test_suite(self):
        now = time.strftime("")
        suit = unittest.TestSuite()
        list = ['test_2', 'test_1', 'test_3']
        for aa in list:
            suit.addTest(Test(aa))
        # f = open('report2.html', 'wb')
        # report = HTMLTestRunner(stream=f, title='title', description='desc')
        # report.run(suit)

    #         %Y  Year with century as a decimal number.
    # %m  Month as a decimal number [01,12].
    # %d  Day of the month as a decimal number [01,31].
    # %H  Hour (24-hour clock) as a decimal number [00,23].
    # %M  Minute as a decimal number [00,59].
    # %S  Second as a decimal number [00,61].
    # %z  Time zone offset from UTC.
    # %a  Locale's abbreviated weekday name.
    # %A  Locale's full weekday name.
    # %b  Locale's abbreviated month name.
    # %B  Locale's full month name.
    # %c  Locale's appropriate date and time representation.
    # %I  Hour (12-hour clock) as a decimal number [01,12].
    # %p  Locale's equivalent of either AM or PM.

        now_str=time.strftime("%Y_%m_%d_%H_%M_%S",time.localtime(time.time()))
        reportname = 'report_'+now_str+'.html'
        with open(reportname, 'wb') as f:
            HTMLTestRunner(stream=f, title='title', description='desc', verbosity=2).run(suit)
        # runner = unittest.TextTestResult(verbosity=2)
        # runner.run(suit)


if __name__ == '__main__':
    unittest.main()

自动生成了测试报告

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值