首页 > 解决方案 > 使用 pytest-cov 和 subprocess.Popen 进行覆盖测试

问题描述

如何使用 Popen 测试具有多个进程的应用程序,收集所有进程的覆盖率?

pytest-cov 文档仅涵盖多处理模块,而不是子进程。 https://pytest-cov.readthedocs.io/en/latest/subprocess-support.html

我的应用程序使用 Popen 来启动自身的新副本。所有孩子都被 SIGTERMed (被处理以便他们正常退出),然后由他们的父母等待。但是,覆盖率报告显示第一个子级在调用 Popen(显示为红色)之前执行了一些行,而孙子级则显示了一些行。我怀疑覆盖率报告文件可能会被多个进程覆盖。没有简单的测试用例,抱歉。

标签: pythonpython-3.xmacossubprocesspytest-cov

解决方案


推荐阅读