大家好,我是杨叔。每天进步一点点,关注微信公众号【程序员杨叔】,了解更多测试开发技术知识!
一、问题背景
Unittest框架作为Python自动化测试的入门框架,很多小伙伴参照网上的一些教程使用Unittest+HTMLTestRunner框架作为自动化测试框架开始学习时,发现自己无法安装HTMLTestRunner。
安装时报错如下:

二、原因
HTMLTestRunner是针对Python2.x的unittest单元测试框架用于生成HTML测试报告的扩展。但是,它并不支持Python3.x。即使参照网上的一些教程,修改HTMLTestRunner源码后能匹配Python3,最原始的htmlrunner生成的HTML报告也不是很好看:
三、解决方案
针对这种情况,网上已经有大佬帮我们优化了官方的HTMLTestRunner的测试报告模板并且直接兼容python3了,不需要重复造轮子了。并且也集成了邮件发送功能,感谢前辈无私奉献!
下载地址:
https://github.com/SeldomQA/HTMLTestRunner
下载解压后,进入目录下使用以下命令安装:
python setup.py install
效果图如下:
明显比原生的报告要好看很多。优化后的库有定制的一些LOGO、链接在上面,并且是英文,不太方便。因此为了方便大家使用,杨叔又汉化优化了一版,最终效果如下:
邮件发送报告功能代码示例如下:
import unittestfrom TestRunner import HTMLTestRunnerfrom TestRunner import SMTPclass TestDemo(unittest.TestCase):def test_success(self):"""执行成功"""self.assertEqual(1+1, 2)if __name__ == '__main__':suit = unittest.TestSuite()suit.addTest(TestDemo("test_success"))report = "./result.html"with(open(report, 'wb')) as fp:runner = HTMLTestRunner(stream=fp,title='Seldom自动化测试报告',description='浏览器chrome,平台windows')runner.run(suit)# 发邮件功能,注意这里不是填邮箱密码而是授权码,授权码需要去邮箱设置里获取smtp = SMTP(user="user@qq.com", password="授权码", host="smtp.qq.com")smtp.sender(to="user@qq.com", attachments=report)
优化的汉化版我已上传到百度网盘,需要的小伙伴可以直接下载。地址:https://pan.baidu.com/s/10UrolE3oSlDtY8c0fCWuBA
提取码:pzjh
END
以上就是本篇文章的全部内容,如果对你有帮助,
欢迎点赞+关注,一起交流成长!
文章转载自程序员杨叔,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




