微信抢票——持续集成实验总结
在本次实验中,我负责了管理员模块部分API以及测试的编写,以及代码覆盖率测试。在本次实验中我了解到了持续集成的方法,同时也熟悉了git的使用方法。
API及其测试编写
在本次试验中,学长们已经完成了前端部分的编写,并搭建好了后端框架,封装好了接口。我们需要完成后端的接口部分。学长的顶层设计非常清晰,文档也很明确,给我们带来了很大便利。
测试用例
在API编写完成之后,我们根据其输入和输出编写了单元测试,同时也针对其完成的功能进行了功能测试。测试使用了django的单元测试TestCase编写,测试了现有代码的正确性,之后又通过覆盖率测试完善了测试代码的覆盖程度
git使用
git的使用确实是团队开发的过程中必不可少的过程。在敏捷开发的过程中,每个人都向master分支push代码,用tracis CI测试之后进行merge。而之前的开发中git往往只是作为保存代码的工具,不涉及多人开发的情况。
代码覆盖率测试
Coverage是一个用来测试python程序代码覆盖率的工具,它能够识别代码的哪些部分已经被执行,并识别有哪些可以执行但未执行的代码。覆盖率测试通常用来衡量测试的有效性和完善性。
1.用coverage run my_program.py arg命令来运行程序
2.coverage report命令可以在屏幕上显示运行结果
3.coverage html命令可获得更加详细的信息
此命令在同级目录下生成包含html文件的文件夹,默认名称为htmlcov,点击打开index.html即可。
4.coverage run --branch my_program.py arg命令支持分支覆盖测量
若程序中的某一行能够跳转到多个下一行(例如if语句),那么coverage会跟踪实际访问过哪些目标,并且标记出没有被访问的代码。相应的html报告中,未执行的分支以黄色显示,右侧注释也会显示未执行的分支行号。
5.coverage xml命令可以生成xml格式的报告
可以检测单体测试代码并且发现单体测试覆盖中的漏洞,但高质量的测试仍然需要自己编写。coverage的配置相对来说比较简单,但是我在配置的过程中还是踩了不少坑,例如报错DJANGO_SETTINGS_MODULE or call settings.configure()等。真诚建议大家遇到坑时使用google而不是百度搜索==