Python单元测试 -- Unittest(二)

使用HTMLTestRunner生成测试报告

导入HTMLTestRunner

点击下载HTMLTestRunner源代码。

方法一:导入Python环境变量

将HTMLTestRunner.py保存在Python的环境变量目录。以Mac下的操作为例:

①下载HTMLTestRunner.py文件

②查看Python在Mac下第三方非标准库模块存放位置

#python
Python 3.5.3 (v3.5.3:1880cb95a742, Jan 16 2017, 08:49:46) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python35.zip', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/plat-darwin', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages']
>>>

通过以上命令查出第三方非标准库模块存放位置为:/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages。

③在/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages目录下新建文件夹HTMLTestRunner

#cd /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages
#mkdir HTMLTestRunner

④将HTMLTestRunner.py文件移动到HTMLTestRunner目录下

⑤在HTMLTestRunner目录下新建_ init _.py文件

方法二:导入项目中

直接将HTMLTestRunner的源代码保存在项目中。

遇到的问题

因为HTMLTestRunner模块使用的是Python2的语法,所以在Python3下运行还需要做适当的修改。

行号 Python2 Python3
95 import StringIO import io
539 self.outputBuffer = StringIO.StringIO() self.outputBuffer = io.StringIO()
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 = e
772 ue = e.decode(‘latin-1’) uo = e

生成测试报告

在Python代码中,运行如下代码,即可生成测试报告。

if __name__ == '__main__':
    suite = unittest.TestSuite()

    suite.addTest(...)
    ...

    file_path = 'test_report.html'
    fp = open(file_path, 'wb')
    runner = HTMLTestRunner(stream=fp, title='Test', description='TestCase')
    runner.run(suite)

你可能感兴趣的:(python)