Python3.5生成测试报告,踩过坑系列
由于实践过程中踩过的坑…下面列出正确的操作步骤以此记录,遇到类似问题的童鞋可以看看1 HTMLTestRunner下载地址:http://tungwaiyip.info/software/HTMLTestRunner_0_8_2/HTMLTestRunner.pyHTMLTestRunner.py复制下来,放在Python目录下的Lib文件下。注意注意!!!python3版本,这里的HTMLTes
由于实践过程中踩过的坑…下面列出正确的操作步骤以此记录,遇到类似问题的童鞋可以看看
1 HTMLTestRunner下载地址:
http://tungwaiyip.info/software/HTMLTestRunner_0_8_2/HTMLTestRunner.py
HTMLTestRunner.py复制下来,放在Python目录下的Lib文件下。
注意注意!!!python3版本,这里的HTMLTestRunner文件一定要修改,不然会报错!
2 HTMLTestRunner.py 修改内容如下:
如果你安装的是python2版本,那么不需要做这一步。因为HTMLTestRunner.py 原本就是python2版本,目前还没找到python3版本,所以需要我们自己修改 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
第772行,将ue = e.decode(‘latin-1’)修改成ue = e
第631行,将print >> sys.stderr, ‘\nTime Elapsed: %s’ % (self.stopTime-self.startTime)修改成print(sys.stderr, ‘\nTime Elapsed: %s’ % (self.stopTime-self.startTime))
其中,Python3中,已经没有StringIO了。取而代之的是io.StringIO。
修改好的HTMLRunner文件见下:
链接: https://pan.baidu.com/s/1o1axwFWS9aeT9lX3zruv3Q
提取码: 427m
3 源代码如下:
1)用例文件代码:
#cding:utf-8
import unittest
import HTMLTestRunner
from base import runmethod
import os
class TestMethod(unittest.TestCase):
@classmethod
def setUpClass(cls):
print("类执行之前的方法")
@classmethod
def tearDownClass(cls):
print("类执行之后的方法")
#测试方法执行之前
def setUp(self):
self.run = runmethod.RunMethod()
print('test--------setup')
#测试方法执行后
def tearDown(self):
print('test--------tearDown')
def test_01(self):
self.token='1111'
url = "hXXXX"
method = 'post'
data = {
"account": "xxx",
"password": "xxxx",
"domainNumber": "xxxx"
}
res=self.run.run_main(method,url,data)
#全局变量
globals()['token']='1000'
self.assertEquals(res['code'],200,'测试失败')
def test_02(self):
url = "hXXXX"
method = 'post'
data = {
"account": "xxx",
"password": "xxxx",
"domainNumber": "xxxx"
}
res = self.run.run_main(method, url, data)
self.assertEquals(res['code'], 200, '测试失败'
2)生成测试报告代码:
#cding:utf-8
import unittest
import HTMLTestRunner
import os
from base.testMethod import *
if __name__ == '__main__':
# 创建容器
suite = unittest.TestSuite()
suite.addTest(TestMethod("test_02"))
suite.addTest(TestMethod("test_01"))
# 读写方式打开文件,文件不存在就创建文件
with open('../report/htmlreport.html','wb') as fp:
runner=HTMLTestRunner.HTMLTestRunner(
stream=fp,
title='测试报告',
description="只是一个测试",
)
runner.run(suite)
注意:测试用例和生成报告代码不能合并,这会导致生成报告代码不生效
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)