码迷,mamicode.com
首页 > Web开发 > 详细

selenium2学习:单元测试框架(5):html测试报告

时间:2018-05-19 14:02:02      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:开发   技术   文件中   name   efault   import   pattern   filename   标题   

1.1     html测试报告

1.1.1      下载HTMLTestRunner

下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html

将下载下的HTMLTestRunner.py存放在python安装目录下的lib中,如下图

 技术分享图片

 

1.1.2      配置HTMLTestRunner

由于 HTMLTestRunner.py 是基于python2开发的,需对 HTMLTestRunner.py 文件进行修改。

  1. 94行

mport StringIO 改为import io。

  1. 539行

self.outputBuffer = StringIO.StringIO() 改为self.outputBuffer = io.BytesIO()

  1. 631行

print >>sys.stderr, ‘\nTime Elapsed: %s‘ % (self.stopTime-self.startTime)改为

print (sys.stderr, ‘\nTime Elapsed: %s‘ % (self.stopTime-self.startTime))

  1. 642行

if not rmap.has_key(cls): 改为 if not cls in rmap:

  1. 766行

uo = o.decode(‘latin-1‘) 改为 uo=o

  1. 772行

ue = e.decode(‘latin-1‘) 改为 ue = e

1.1.3      编辑执行文件

执行的文件依然是计算文件,同7.3.4的py文件一样,均对runtest文件进行修改,修改结果如下:

 runtest:htmlRPT.py

import unittest
from HTMLTestRunner import HTMLTestRunner
import time

#定义测试用例的目录为当前目录
test_dir = ./
discover = unittest.defaultTestLoader.discover(test_dir, pattern=test*.py)

if __name__ == __main__:
    now = time.strftime("%y%m%d-%H%M%S")
    filename = test_dir + / + Report_ + now + .html
    fp = open(filename,wb)
    runner = HTMLTestRunner(stream=fp,  #stream指定测试报告文件
                            title=计算器测试报告,   #测试报告标题
                            description=用例执行情况如下:)  #副标题

    runner.run(discover)

 

 

1、  添加导入文件

from HTMLTestRunner import HTMLTestRunner

2、  避免每次执行每次报告被覆盖,因此将报告名字中含有当前时间

now = time.strftime("%y%m%d-%H%M%S")

将当前时间按年月日-时分秒的形式显示并赋值给now这个变量

filename = test_dir + ‘/‘ + ‘Report_‘ + now + ‘.html‘

报告名字为当前目录下:report时间.html

3、  为了保证报告清晰易懂,建议将被执行的文件中的类和方法均使用’’’……’’’注释说明,因为’’’……’’’为doc string类型的注释,在平时调用的时候不显示,但HTMLTestRunner 却可以成功读取。如下图:

 

 test_add.py

#0517008:suite:add

from calculator import count
import unittest

class testadd(unittest.TestCase):
    ‘‘‘加法计算‘‘‘
    def setUp(self):
        print(Test add Start)
        
    def tearDown(self):
        print(Test add Over)

    def test_add1(self):
        ‘‘‘加法计算1:成功‘‘‘
        j = count(2,3)
        self.assertEqual(j.add(),5,msg= 加法2+3=5:错了1)

    def test_add2(self):
        ‘‘‘加法计算2:失败‘‘‘
        j = count(3,3)
        self.assertEqual(j.add(),5,msg= 加法3+3=5:错了2)

if __name__ == __main__:
    unittest.main()
        

1.1.4      执行结果

 技术分享图片

 

点击detail可查看类下所有方法执行情况,点击fail,可查看失败的原因。

 

selenium2学习:单元测试框架(5):html测试报告

标签:开发   技术   文件中   name   efault   import   pattern   filename   标题   

原文地址:https://www.cnblogs.com/jxba/p/9060038.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!