UnitTest+HTMLTestRunner 测试可视化

HTMLTestRunner

使用HTMLTestRunner进行图表可视化,首先需要下载HTMLTestRunner.py文件,是在https://github.com/huilansame/HTMLTestRunner_PY3/blob/master/HTMLTestRunner_PY3.py获得的,后续我也会把该资源上传供免费下载。
**注:**如果是通过上述的github代码获取到的文件,直接使用会报错TypeError: write() argument must be str, not bytes,此时要找到这么一句代码self.stream.write(output.encode('utf8')),给改成self.stream.write(output),如下图
在这里插入图片描述
当下载好文件后,使用from HTMLTestRunner import HTMLTestRunner导入该类就可以直接使用了。按照顺序了来构建项目:

1 UnitTest测试文件

首先写一个UnitTest框架的测试文件TEST.py,代码如下

import unittest

class TestMethods(unittest.TestCase):
    # 通过测试
    def test_pass(self):
        self.assertEqual(1+1,2)

    # 没通过测试
    def test_failed(self):
        self.assertEqual(1 - 1, 2)

    # 报错
    def test_error(self):
        self.assertEqual(1 - 2, num)

if __name__ == '__main__':
    unittest.main()
2 测试可视化文件

然后编写将测试结果可视化的文件PieTest.py,代码如下:

import unittest
import time
import os.path
from HTMLTestRunner import HTMLTestRunner

class TestRunner(object):
    # 初始化要用到的字符串
    def __init__(self, cases="./", title=u'自动化测试报告', description=u'环境:windows 10'):
        self.cases = cases
        self.title = title
        self.des = description

    # 开始测试
    def run(self):
        # 生成report文件夹
        for filename in os.listdir(self.cases):
            if filename == "report":
                break
        else:
            os.mkdir(self.cases + '/report')
        # 获取当前时间
        now = time.strftime("%Y-%m-%d_%H_%M_%S")
        # 报告结果写入html文件
        with open('./report/' + now + "_result.html", 'w', encoding='utf-8') as fp:
            # 运行./路径下的TEST.py文件,视自己的情况修改路径
            tests = unittest.defaultTestLoader.discover("./", pattern='*TEST.py', top_level_dir=None)
            runner = HTMLTestRunner(stream=fp, title=self.title, description=self.des)
            runner.run(tests)


if __name__ == '__main__':
    test = TestRunner()
    test.run()

可以看到导入了HTMLTestRunner.py包,说明PieTest.py和它在同一路径下,最终的项目目录如下:
在这里插入图片描述

项目名Runner,你的项目可以是别的名字
最后运行`PieTest.py`文件,就可以愉快地生成报告了。

在这里插入图片描述在这里插入图片描述

发布了9 篇原创文章 · 获赞 21 · 访问量 458

猜你喜欢

转载自blog.csdn.net/weixin_42763696/article/details/105586862