学习
实践
活动
专区
工具
TVP
写文章

python笔记32-ddt框架报告优化

前言

至于什么是ddt这个可以参考我之前写的博客内容,使用ddt框架的时候,有个问题困扰我很久了,一直没得到解决(也有很大小伙伴问过我,没解决抱歉了!)

这个问题就是:如何使用ddt框架时,生成的html报告里面注释能对每个用例传入不同的说明?默认是固定写死的内容。

最近刚好看到关于python的docstring【python笔记30-docstring注释添加变量】(https://www.cnblogs.com/yoyoketang/p/9719147.html)相关知识,ddt源码也读了几次,也思考了很多办法去给docstring传入变量内容,甚至使用装饰器(decorator)都未能成功。一次偶然机会,代码删了一半,运行成功了,算是机缘巧合吧,然后灵光一闪打通了任督二脉!

遇到问题

首先说下之前使用ddt框架遗留的老问题

第一个问题是当测试用例数量大于10的时候,排序会是test_1,test_10, test_11,test_12, test_2, test_3, test_4这种

这个问题最近的ddt版本已经解决了

第二个问题是使用最新版本(Version: 1.2.0)生成html报告的时候出现dict() -> new empty dictionary dict(mapping)

这个问题是最新版的一个bug,解决办法安装1.1.2版本即可【python笔记31-使用ddt报告出现dict() -> new empty dictionary dict(mapping) 问题解决】

第三个问题是生成的html报告的注释内容是写死的,不能根据用例动态传入

我们希望每个用例能动态传入一个参数到html报告里

报告注释传变量

给docstring传一个变量进去,代码很简单,但是不容易想到,格式参考:”””上海-悠悠:”””

注意是三个双引号,变量用表示参数内容

这样就能把测试数据传入过来了

用例多个参数

上面那个案例是把测试数据放到字典里,用例里面穿一个d参数,需要的数据从字典里面去取

实际上也可以给用例传多个参数,每组数据写到一个元祖里,用装饰器@ddt.upack解析出来

备注:使用unpack的时候,报告里面的备注会自动带上参数:admin_123true用例1描述__ ,这点比较蛋疼了,还是建议用上面那个方法,参数放字典吧

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181010G0W0XH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券