• day11_unittest生成测试报告


    HTMLTestRunner是帮助产生测试报告的,把HTMLTestRunner.py这个文件放到环境变量里,最简单的方法就是把HTMLTestRunner.py复制到External Libraries下面的任一目录里,这里我是放到了Lib目录下,以后即使在别的目录下也可以使用

    TestCase是测试用例
    TestSuite是用例集合
    TestLoader就是查找测试用例的,加载TestCase到TestSuite中
    TestRunner是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息

    import unittest
    import HTMLTestRunner


    def add(a, b):
    return a + b


    class AddTest(unittest.TestCase):
    def test_normal(self):
    res = add(1, 1)
    self.assertEqual(2, res)

    def test_error(self):
    res = add(1, 1)
    self.assertEqual(1, res)

    def setUp(self):
    print('setUp')

    def tearDown(self):
    print('tearDown')

    @classmethod
    def setUpClass(cls):
    print('setUpClass')

    @classmethod
    def tearDownClass(cls):
    print('tearDownClass')


    if __name__ == '__main__':
    # suite = unittest.TestSuite() # 定义一个空的测试集合,suite.addTest(类名('用例名称'))是添加某个测试用例
    # suite.addTest(unittest.makeSuite(AddTest)) # 一次性加载一个类文件下所有测试用例到suite中去
    test_suite = unittest.makeSuite(AddTest) # 这行等于上面两行
    fw = open('ssj.html', 'wb') # wb写入模式,b是bytes,可以写入图片
    runner = HTMLTestRunner.HTMLTestRunner(stream=fw, title='测试报告', description='2020年第一个测试报告')
    runner.run(test_suite)
    fw.close()

    运行完成后在pycharm里打印出F..代表用例通过,F代表用例失败,如下图:

    在当前目录里会生成ssj.html这个文件,点开ssj.html在当前页面点击右上角的任意一个浏览器,如下图:

    以google浏览器为例会在浏览器里生成测试报告,如下图:

    点击All会显示具体用例执行的情况,点开fail会看到具体的报错信息,HTMLTestRunner这个模块产生的报告,是给咱们自己看的,这个报告看着不是很好看,现在用BeautifulReport来生成测试报告,把BeautifulReport.zip解压到任一目录下,然后复制第二层文件夹到环境变量里,就是环境变量Lib下的site-packages文件夹下,我放到D: ew_pythonLibsite-packages这个路径下,然后导入BeautifulReport,通过如下代码实现:

    import unittest
    import BeautifulReport


    def add(a, b):
    return a + b


    class AddTest(unittest.TestCase):
    def test_normal(self):
    res = add(1, 1)
    self.assertEqual(2, res)

    def test_error(self):
    res = add(1, 1)
    self.assertEqual(1, res)

    def setUp(self):
    print('setUp')

    def tearDown(self):
    print('tearDown')

    @classmethod
    def setUpClass(cls):
    print('setUpClass')

    @classmethod
    def tearDownClass(cls):
    print('tearDownClass')


    if __name__ == '__main__':
    test_suite = unittest.makeSuite(AddTest)
    bf = BeautifulReport.BeautifulReport(test_suite)
    bf.report(filename='0605_new_report.html', description='更好看的测试报告') # 还可以传一个log_path,想在哪生成报告就写上具体的路径,如果没写log_path,就在当前目录下生成测试报告
    print(bf.failure_count) # 失败次数
    print(bf.success_count) # 通过次数
  • 相关阅读:
    函数和常用模块【day06】:shutil模块(四)
    函数和常用模块【day06】:time模块 (一)
    函数和常用模块【day05】:生成器并行计算(五)
    函数和常用模块【day05】:装饰器前奏(一)
    函数和常用模块【day04】:内置函数(八)
    函数和常用模块【day04】:作用域、局部和全局变量(四)
    函数和常用模块【day04】:函数的非固定参数(三)
    Python基础【day02】:元组和购物车练习的知识点
    Python基础【day02】:字符串(四)
    Python基础【day03】:入门知识拾遗(八)
  • 原文地址:https://www.cnblogs.com/laosun0204/p/8601803.html
Copyright © 2020-2023  润新知