小编给大家分享一下unittest如何生成测试报告,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
在测试套件中,修改用于执行测试用例集的runner,增加一个上下文管理器with语句,例如:with open('文件名', 'w+') as f
,其中f表示一个流对象,然后把流对象加入TextTestRunner类的参数stream中,例如:runner = TextTestRunner(stream=f),然后运行,项目中就能生成一个文件,文件中的内容就是测试用例打印出的内容;
from test1 import MyTestCase from unittest import TestSuite, TextTestRunner suite = TestSuite() # 在测试用例集中添加测试用例 suite.addTest(MyTestCase('test_print1')) suite.addTest(MyTestCase('test_print2')) suite.addTest(MyTestCase('test_print3')) if __name__ == '__main__': # 创建测试runner,执行测试用例集 with open('html_result1', 'w+') as f: runner = TextTestRunner(stream=f, verbosity=2) runner.run(suite)
HtmlTest runner是一个单元测试运行器,可以将测试结果保存在Html文件中。首先需要安装模块:pip install html-testRunner,安装后调用时显示为HtmlTestRunner;
使用时需要导入HtmlTestRunner中的HTMLTestRunner类;
再将测试中的TextTestRunner类替换成HTMLTestRunner类,这里需要注意一下HTMLTestRunner自带的参数,output表示结果保存到哪里、verbosity显示用例打印内容、stream表示标准输出、report_name文件名、report_title标题、descriptions描述等。然后直接运行,就会在html中生成一个html文件,如果再次运行会生成一个新的html文件;
from test import MyTestCase from unittest import TestSuite, TextTestRunner import HtmlTestRunner suite = TestSuite() # 在测试用例集中添加测试用例 suite.addTest(MyTestCase('test_print1')) suite.addTest(MyTestCase('test_print2')) suite.addTest(MyTestCase('test_print3')) if __name__ == '__main__': # 创建测试runner,执行测试用例集 # runner = TextTestRunner() with open('html_result', 'w+') as f: runner = HtmlTestRunner.HTMLTestRunner(output='./', stream=f, report_title='测试报告', descriptions='测试报告详情') runner.run(suite)
我们来看一下在浏览器中HTML页面效果,这个测试报告都有说明的,比如说测试用例的Total
总数是3、Pass
通过的测试用例数量是2、Skip
跳过的测试用例数量是1
我们可以使用unittest.defaultTestLoader
类中的discover()
方法实现自动根据测试目录start_dir
匹配查找测试用例文件,并将查找到的测试用例组装到测试套件,然后通过run()方法执行discover
from unittest import TextTestRunner, defaultTestLoader start_dir = './' discover = defaultTestLoader.discover(start_dir=start_dir, pattern=r'test*.py') if __name__ == '__main__': # 创建测试runner,执行测试用例集 with open('html_result1', 'w+') as f: runner = TextTestRunner(stream=f, verbosity=2) runner.run(discover)
以上是“unittest如何生成测试报告”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。