HTMLTestRunner是Python標准庫unittest模塊的一個擴展。它生成易於使用的HTML測試報告。
1.下載HTMLTestRunner.py模塊地址
http://tungwaiyip.info/software/HTMLTestRunner.html
2.導入模塊有多種方式,這里我們將模塊放在python的第三方非標准模塊庫
mac下python第三方非標准模塊庫位置:/Library/Python/2.7/site-packages
查看方式:
$ python Python 2.7.10 (default, Oct 23 2015, 18:05:06) [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.path
3.新建一個HTMLTestRunner文件夾,並在文件夾下新建一個空的__init__.py文件,這樣文件夾HTMLTestRunner就變成了一個可以導入的包,然后將HTMLTestRunner.py也放入文件夾里。
4.現在就可以使用HTMLTestRunner模塊啦
# coding=utf-8 import unittest from test_case import test_baidu from HTMLTestRunner import HTMLTestRunner #構造測試集 suite = unittest.TestSuite() suite.addTest(test_baidu.MyTest("test_baidu")) if __name__ == '__main__': '''不使用HTMLTestRunner的方式執行用例 runner = unittest.TextTestRunner() runner.run(suite) ''' #定義報告存放路徑 fp = open('./report/result.html','wb') runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title=u'百度搜索測試報告',description=u'用例執行情況:') runner.run(suite) fp.close()
注意: 引包的時候要
from HTMLTestRunner import HTMLTestRunner (這里糾結了老半天)
(mac電腦下不知道為啥直接把HTMLtestrunner.py放到python主目錄下 或者指定文件位置 都是會報錯,一定要按本文的方法才成功!!!!!!!)
知識擴展:
要弄明白這個問題,首先要知道,python在執行import語句時,到底進行了什么操作,按照python的文檔,它執行了如下操作:
第 1步,創建一個新的,空的module對象(它可能包含多個module);
第 2步,把這個module對象插入sys.module中
第 3步,裝載module的代碼(如果需要,首先必須編譯)
第 4步,執行新的module中對應的代碼。
在執行第3步時,首先要找到module程序所在的位置,搜索的順序是:
當前路徑 (以及從當前目錄指定的sys.path),然后是PYTHONPATH,然后是python的安裝設置相關的默認路徑。正因為存在這樣的順序,如果當前路徑或PYTHONPATH中存在與標准module同樣的module,則會覆蓋標准module。也就是說,如果當前目錄下存在xml.py,那么執行import xml時,導入的是當前目錄下的module,而不是系統標准的xml。
了解了這些,我們就可以先構建一個package,以普通module的方式導入,就可以直接訪問此package中的各個module了。python中的package必須包含一個__init__.py的文件。
------以上引用“老王python”
后記:
這里看到教程 說下載下來的HTMLTestRunner.py模塊,應該放到
下次試試