单元测试覆盖率
业务需求:
·减免测试人员常规操作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