我们都知道,在robot framework的IDE中执行测试用例,会自动生成测试报告,而纯Python写的函数,单元测试方法是不会自动生成测试报告的,本文就来讲下单元测试和测试报告的生成。
单元测试类库:unittest,在安装python就自带,不需要额外安装,只需要引用即可,下面贴上核心代码,包括两个单元测试:
#unittest1.py
#coding:utf-8
import unittest
class case1(unittest.TestCase):
def test_case1(self):
"""
这里是第1个测试用例
"""
result=125*30
print("test_case1 begin")
#self.assertEqual(result,3750,'test_case1 结果失败!')
assert result==3750,'test_case1 fail!'
print("test_case1 结果正确")
pass#unittest2.py
#coding:utf-8
import unittest
class case2(unittest.TestCase):
def test_case2(self):
"""
这里是第2个测试用例
"""
print("test_case2 begin")
s="this is test case2"
assert 'case2' in s,'test_case2 fail!'
#这里我们写一个失败的测试用例
assert 'case22' in s,'test_case2 fail!'
print("test_case2 结果正确".decode(encoding='utf-8'))
pass
#下列调用可以单独执行本单元测试
#if __name__ =="__main__":
# unittest.main()#run_unittests.py(需要下载第三方类库:HTMLTestRunnerCN.py,在网上都能搜到,文章最后的demo下载中会包含)
#coding:utf-8
import unittest
from unittest1 import case1
from unittest2 import case2
import HTMLTestRunnerCN
#创建测试套件(集合)
suite = unittest.TestSuite()
#添加多个单元测试方法
suite.addTest(case1("test_case1"))
suite.addTest(case2("test_case2"))
#……
#运行测试套件,批量执行单元测试用例,不输出html报告文件
#unittest.TextTestRunner().run(suite)
#第三方包HTMLTestRunnerCN执行测试用例,能输出到html测试报告
#路径:当前目录report.html
st=open('./report.html','wb')
HTMLTestRunnerCN.HTMLTestRunner(stream=st,title='我的测试报告',tester="张三",description="多个单元测试执行").run(suite)执行run_unittests.py之后,在代码目录生成一个report.html文档,内容如下:
代码中所有的print语句输出的内容都会被记录在报告中,非常方便查看代码执行情况。
demo下载:PythonUnittestReportDemo.zip