国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python使用 HTMLTestRunner.py生成測試報告

2020-02-16 10:25:54
字體:
來源:轉載
供稿:網友

本文介紹了python使用 HTMLTestRunner.py生成測試報告 ,分享給大家,具體如下:

HTMLTestRunner.py python 2版本

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

使用時,先建立一個”PyDev Package“,將下載下來的HTMLTestRunner.py文件拷貝在該目錄下。

例子:testcase5_dynamic.py

import unittestfrom dev.widget import Widgetclass WidgetTestCase(unittest.TestCase): def setUp(self):  self.widget=Widget()   def tearDown(self):  self.widget.dispose()  self.widget=None   def testSize(self):  self.assertEqual(self.widget.getSize(), (40,40), "Wrong")   def testResize(self):  self.widget.resize(100, 100)  self.assertEqual(self.widget.getSize(), (100,100), "Wrong")

html_report.py:

#coding:utf-8from lib import HTMLTestRunnerimport unittestfrom testcase5_dynamic import WidgetTestCaseif __name__=='__main__': suite=unittest.makeSuite(WidgetTestCase) filename='D://myreport.html' fp=file(filename,'wb') runner=HTMLTestRunner.HTMLTestRunner(fp,title=u'my unit test',description=u'This is a report test') runner.run(suite)

Run的時候,需要使用Python Run,使用Python unit-test跑測試生成不了myreport.html,目前還不知道為什么。

有時候,不會立即生成D://myreport.html,我們可以自己先建立一個空的myreport.html,這樣再運行之后打開就會看到報告內容。

 

HTMLTestRunner.py 的python3 版本

由于 HTMLTestRunner.py 原本就是python2版本,目前還沒找到python3版本,所以需要我們自己修改 HTMLTestRunner.py 文件。

1. 修改的地方

問題一:No module named StringIO

原因:python 3 中 沒有 StringIO 這個模塊。這里我們需要使用io 這個模塊來代替。

解決方法:

第94行引入的名稱要改,從 import StringIO 改成import io。

相應的,539行 self.outputBuffer = StringIO.StringIO() 要改成self.outputBuffer = io.BytesIO()

問題二:AttributeError: 'dict' object has no attribute 'has_key'

原因:python 3 字典類型的object 已經不支持 has_key函數,我們需要使用in 來進行遍歷。

解決方法:

定位到642行,if not rmap.has_key(cls): 需要換成 if not cls in rmap:

問題三:'str' object has no attribute 'decode'

原因:python3 里面對字符的操作中,decode已經拿掉了。

解決方法:

定位到772行,把 ue = e.decode('latin-1') 直接改成 ue = e 。

另外766還有類似的uo = o.decode('latin-1'),改成 uo=o ;

問題四 :TypeError: can't concat bytes to str

原因:定位一下,報在了778行的內容escape(uo+ue) 。這是因為我們上面給uo賦值的時候,走的是else流程,uo被賦值的是bytes類型的值。 而bytes類型不能直接轉化為str類型。所以我們需要在前面給uo賦值的時候先將bytes類型轉換為 str類型。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 美姑县| 晋中市| 宜章县| 黄梅县| 阿克陶县| 肇庆市| 时尚| 彭水| 专栏| 基隆市| 宁乡县| 华蓥市| 奉新县| 广灵县| 隆子县| 邳州市| 丹棱县| 正镶白旗| 合作市| 南安市| 望谟县| 阜城县| 淳安县| 许昌市| 资兴市| 福贡县| 保山市| 固原市| 青铜峡市| 读书| 博湖县| 佛冈县| 宝丰县| 土默特左旗| 缙云县| 张掖市| 巢湖市| 马关县| 东乡族自治县| 濮阳县| 新乡市|