那如何生成一个测试报告呢,需要加入另外一个模块了,HTMLTestRunner,这个模块需要自己安装,使用执行测试用例就会生成一个html的测试报告,里面会有每个测试用例的执行结果
if __name__ =='__main__':
filepath='../report/htmmlreport,html'#生成一个文件
fp=file(filepath,'wb')#打开一个保存结果的html文件
suite=unittest.TestSuite()#创建容器
suite.addTest(TestMethod('测试用例test_01'))#容器中添加用例
unittest.TextTestRunner.run(suite)#用例执行
runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title='this is tile') #生成执行用例的对象
runner.run(suite) #执行测试套件
如果我们有很多个模块,每个模块下面都写了很多python文件,每个python文件里面都有测试用例,那怎么把这个目录下的用例都执行了呢,就要先找到这个目录下的所有python文件,然后找到里面的测试用例,逐个执行,代码如下:
import unittest,HTMLTestRunner
suite = unittest.TestSuite()#创建测试套件all_cases = unittest.defaultTestLoader.discover('.','test_*.py')
#找到某个目录下所有的以test开头的Python文件里面的测试用例forcasein all_cases:
suite.addTests(case)#把所有的测试用例添加进来fp = open('res.html','wb')
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title='all_tests',description='所有测试情况')
runner.run(suite) #运行测试
我们在后续进行持续集成的时候,要让代码自动运行,就会用到Jenkins了,但是上面产生的测试报告都是html格式的,Jenkins不认识,就在Jenkins里面显示不出来。那咱们就要产生一些Jenkins认识的测试报告,Jenkins认识xml格式的报告,那咱们就产生xml格式的呗,就需要用一个新的模块,xmlrunner,安装直接 pip install xmlrunner即可,代码如下:
import unittestimport xmlrunner#导入这个模块class My(unittest.TestCase):
def test1(self,a,b,c):
self.assertEqual(a+b,c)
if__name__=='__main__':
test_suite = unittest.TestSuite()
test_suite.addTest(unittest.makeSuite(My))
runner = xmlrunner.XMLTestRunner(output='report')#指定报告放的目录runner.run(test_suite)
然后咱们运行,可以看到在report目录下已经产生了xml格式的报告了,而且还自动把日期加上了
自编+转载https://www.cnblogs.com/feng0815/p/8045850.html
网友评论