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 文件进行修改。
- 94行
mport StringIO 改为import io。
- 539行
self.outputBuffer = StringIO.StringIO() 改为self.outputBuffer = io.BytesIO()
- 631行
print >>sys.stderr, ‘\nTime Elapsed: %s‘ % (self.stopTime-self.startTime)改为
print (sys.stderr, ‘\nTime Elapsed: %s‘ % (self.stopTime-self.startTime))
- 642行
if not rmap.has_key(cls): 改为 if not cls in rmap:
- 766行
uo = o.decode(‘latin-1‘) 改为 uo=o
- 772行
ue = e.decode(‘latin-1‘) 改为 ue = e
1.1.3 编辑执行文件
执行的文件依然是计算文件,同7.3.4的py文件一样,均对runtest文件进行修改,修改结果如下:
runtest:htmlRPT.py
import unittestfrom HTMLTestRunner import HTMLTestRunnerimport 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:addfrom calculator import countimport unittestclass 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测试报告
原文地址:https://www.cnblogs.com/jxba/p/9060038.html