因此,我有一个使用pytest和pytest-cov模块进行测试的项目来报告覆盖率。
一些代码涉及引导和配置,而运行该代码的规范方法是通过Shell脚本开始。当前的单元测试使用subprocess
模块来测试对模拟数据运行此Shell脚本。我想针对覆盖范围进行代码报告,并且我专门尝试避免
1)大量修改包装器以支持测试方案。另外,这样做有做2)的风险。
2)在包装器外部运行boostrap代码(例如,通过分叉进程并直接运行代码),因为我希望这些测试尽可能地切合实际。
即使使用subprocess.Popen
启动时,是否有任何(规范的,Python的)方式将coverage集合传播给所有子进程?我可以使用hack轻松解决问题,所以这不是我想要的。
答案 0 :(得分:0)
这实际上是开箱即用的。我认为这不起作用的原因是路径映射w.r.t. Docker卷不正确,因为子进程加载的模块已绑定安装在容器中。仅在路径完全匹配时才报告覆盖率。