HTMLTestRunner 是Python的一个标准库,是unittest单元测试的一个框架扩展,顾名思义可以用它来生成漂亮的单元测试报告,千万别小看测试报告,赏心悦目的报告能给测试增色不少,一起来看看HTMLTestRunner是如何工作的吧 -
下载和安装
有两种方式,一种是直接pip管道安装
pip install html_testRunner*.whl
另一种是直接官网下载testruner相应的py文件(Python 模块文件),然后放在安装目录的lib下即可windows:下载HTMLTestRunner.py 文件,放在python目录下的lib文件夹, 例如\Python27\Lib
实例参考
下面给出一个使用例子,这也是单元测试的常见写法,请留意
1 引入相关模块(modules)
# -*- coding:utf-8 -*- import unittest import HTMLTestRunner,sys,StringIO
2 单元测试用例实现
#测试用例 class MyTestCase(unittest.TestCase): def setUp(self): pass def tearDown(self): pass def testCase1(self): self.assertEqual(2,3,"thest both number are not equal, so, this message should show here") def testCase2(self): self.assertNotEqual(2,3,"the both number i given are not equal. so here this message should show here!") def testCase3(self): self.assertIs('a', 'a', "'a' is 'a', so assert 'self.assertIs(a, a, msg)'shouldn't show this message.") def testCase4(self): self.assertIn('y', 'Alan', "error message - self.assertIn('y', 'Alan', 'msg') doesn't work here, so show this message") def TestCase5(self): self.assertNotIn('a', 'Alan', "error message - self.assertNotIn('a', 'Alan', 'msg') doesnt work, so show this message")
3 #添加Suite
def Suite(): suiteTest = unittest.TestSuite() suiteTest.addTest(MyTestCase("testCase1")) suiteTest.addTest(MyTestCase("testCase2")) suiteTest.addTest(MyTestCase("testCase3")) suiteTest.addTest(MyTestCase("testCase4")) suiteTest.addTest(MyTestCase("TestCase5")) return suiteTest
1.4 调用TestRunner生成测试报告
if __name__ == '__main__':
#确定生成报告的路径
filePath = "c:/Users/Luck_Lello/Desktop/pyResult.html"
fp = file(filePath,'wb')
#生成报告的Title,描述
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title='Automation Test Report for Python',description='This is the Report created by Alan.Yuan')
runner.run(Suite())
小结:
这个基本上就是HTMLTestRunner模块的基本用法,当然报表生成后,还可以对其进行美化,结合css和pyechart可以做出更加生动的报告来。关于这部分的结合,下次有机会再继续分享.