unittest生成报告

那如何生成一个测试报告呢,需要加入另外一个模块了,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格式的报告了,而且还自动把日期加上了

unittest生成报告_第1张图片





自编+转载https://www.cnblogs.com/feng0815/p/8045850.html

你可能感兴趣的:(unittest生成报告)