Mar*_*oma 5 code-coverage pytest test-coverage mypy
我可以通过mypy生成类型“覆盖”报告
mypy . --html-report mypy-report
Run Code Online (Sandbox Code Playgroud)
以及带有pytest-cov的 pytest 覆盖率报告
pytest --cov=app --cov-report=html
Run Code Online (Sandbox Code Playgroud)
有没有办法将两个报告结合起来?我会对既没有被单元测试也没有被 mypy 覆盖的代码感兴趣。
我花了一点时间在这上面,并做了一些进展,但没有一个完全可行的解决方案。
和pytest都mypy具有发出基于 XML 的报告的标志,并且它们共享的一个通用模式适用于基于 Java 的Cobertura工具。
为每个生成一个 XML 文件的示例调用:
pytest --cov=app --cov-report=xml:pytest-cobertura.xml
mypy app.py --cobertura-xml-report .
Run Code Online (Sandbox Code Playgroud)
之后,您将拥有两个类似的 XML 文件,名称为:
pytest-cobertura.xmlcoverage.xml-mypy只允许目录,不允许文件名我尝试过将这两个文件合并为一个文件,但在我花在这方面的时间里一直没能成功——但这应该是解析 XML 树和合并的过程两组linesXML 标签并创建combined.xml文件。
现在,每个文件都可以使用该pycobertura工具单独呈现到终端或 HTML,如下所示:
pycobertura show --format html --output coverage.html combined.xml
Run Code Online (Sandbox Code Playgroud)
我还没有弄清楚合并的方法,但想给你我所想到的。