后端代码覆盖率测试
后端代码生成程序共包含4个文件,包括
- main_generate:主程序生成函数
- model_generate:模型生成函数
- model_para:存储model_generate需要用到的一系列全局参数
- all_generate:将上述文件内容结合,给前端提供一个代码生成接口
根据统计,代码生成程序共包括986行代码,其中包括大量判断语句,需要对其进行覆盖率测试确保准确性。
在进行正式测试前,发现django运行时会对源文件进行一定修改。例若源文件头部为:
最终生成文件头部为:
需对其进行修改,否则无法正常通过python运行。
我所选取的插件为coverage,它是一个用来测试代码覆盖率的 Python 第三方库。在命令行下使用如下命令即可安装:
pip install coverage
通过查阅资料,总结了coverage的常用指令:
- coverage run --help # 打印帮助信息
- coverage run test_xxx.py # 执行test_xxx.py文件,会自动生成一个覆盖率统计结果文件.coverage
- coverage report -m(带有详细信息) # 查看coverage报告,读取.coverage文件并打印到屏幕上,可以在命令行里看到统计结果
- coverage html -d report # 生成显示整体的covergae html形式的报告
以实际操作为例,我在本地构建了包括23个测试样例的文件test.py。在命令行中进入文件路径后,执行如下命令:
程序运行后自动在文件夹下创建report文件夹,内部包括相关的代码覆盖率分析文件,如下图所示:
可以点击文件名查看具体文件中的代码覆盖率
总体而言coverage插件非常实用也很容易上手,能够有效地对小规模程序进行测试覆盖率检查。