odoo单元测试覆盖率

单元测试覆盖率

业务需求:

  ·减免测试人员常规操作BUG

  ·提高程序员代码质量

常规测试代码流步骤

预制demo数据

建立test_name.py

继承测试公共类(transcationCase)

定位单据以及预定需要的数据

执行单据所有按钮

执行Model里所有方法

manifest加载相关文件路径

启动测试

查看结果

一、 预制Demo数据

在被测模块下创建demo空文件,或者放在data下

示例代码:

在这里插入图片描述

在这里插入图片描述

2、预制数据。

提前制定好当前模块里所有模型的数据。

如果模块涉及到范围外的基础数据,也是需要预制的,或者在需要的时候引用原有的Demo

示例代码:

在这里插入图片描述

若范围外的数据需要执行某个操作(仅一次),则可用属性function

示例代码:

在这里插入图片描述

二、 建立test_name.py

命名必须以test_开头

在这里插入图片描述

三、 继承公共测试类

在这里插入图片描述

四、 定位单据以及预定需要的数据

这些数据员来源于Demo预制的数据(不限于当前模块)。直接ref(“IDName”).id

在这里插入图片描述

五、 测试执行方法入口

test_name.py。 至少有一个以test_开头方法作为执行入口。

但是代码要遵循规范性开发。故同一代码功能放置在一个方法。

在这里插入图片描述

六、 执行按钮代码

先定位到某个单据,然后直接调用某个按钮方法即可

如果方法有参数需要传递,是需要进行处理的。

判断该方法执行的结果是否符合预期结果

如:执行审核按钮,状态变为confirmed

在这里插入图片描述

七、 执行Model(模型)里面的方法

提高代码的覆盖率就必须让所有的代码全部被执行。

注意:有些代码是有if 条件判断的,这时候需要制造数据满足该条件,使得该条件下的方法被执行。

八、 manifest加载demo 文档
在这里插入图片描述

九、 运行测试

pip install coverage;

在项目文件夹下执行coverage run –source=module(模块路径)start –c conf(配置文件路径)-d db_name –i module –test-enable –stop-after-init –log-level=test;新建数据库便于加载demo数据,第二次执行的时候,则可以把-i 改为 - u

在这里插入图片描述

用coverage report进行快速查看覆盖率,coverage html在当前工作文件夹下生成hrmlcov文件夹,包含一系列html文件,可查看覆盖率及代码运行及未运行部分:

在这里插入图片描述

也可以去当前工程目录下查找htmlcov

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值