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

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, ' Time Elapsed: %s' % (self.stopTime-self.startTime)改为

print (sys.stderr, ' Time 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,可查看失败的原因。

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