🌲[UtilMeta] 添加以 Flask 作为运行时实现的 API 测试

项目:UtilMeta
难度:较高

任务描述:UtilMeta 是一个后端元框架,底层可以支持 Django, Flask, FastAPI 等作为运行时框架,这个任务需要将编写好的 API 测试用例 应用到 Flask 运行时框架中,
可以参考 以 Django 作为运行时实现的测试以 FastAPI 作为运行时实现的测试
也就是启动一个已经配置好的 Flask 服务并运行 API 测试

主要难点: Django 和 FastAPI 都可以采用 这段代码 中的方式,使用一个新的线程运行服务进行测试,但 Flask 服务似乎只能在主线程运行,使用这种方式会卡死 pytest 的进程,请求 @greyli 以及比较熟悉 Flask 的朋友协助

可以考虑用 pytest-flask 提供的 live server fixture

1 Like

感谢 tip,我尝试了很多方案,最终还是自己实现了一个通用的 live server process fixture,所有的运行时框架都可以通过这个 fixture 来启动一个服务进程进行测试,但麻烦的点在于我参照 pytest-cov 文档 尝试了很多种方式都没办法把 subprocess server 中执行的 API 代码覆盖情况同步给 pytest-cov ,无奈只能另写一个 server thread fixture 用来收集各个运行时框架的测试覆盖率,不知道辉哥有没有好点的 workaround

1 Like