Posso combinar relatórios mypy com relatórios de cobertura pytest?
Posso gerar um relatório do tipo "cobertura" com mypy via
mypy . --html-report mypy-report
e um relatório de cobertura pytest com pytest-cov
pytest --cov=app --cov-report=html
Existe uma maneira de combinar os dois relatórios? Eu estaria interessado em código que não seja coberto por testes de unidade nem por mypy.
Respostas
Gastei um pouco de tempo nisso e fiz alguns progressos, mas não tenho uma solução totalmente funcional.
Ambos pyteste mypytêm sinalizadores para emitir um relatório baseado em XML, e o esquema comum que eles compartilham é para a ferramenta Cobertura baseada em Java .
Exemplo de invocação para produzir um arquivo XML para cada um:
pytest --cov=app --cov-report=xml:pytest-cobertura.xml
mypy app.py --cobertura-xml-report .
Depois disso, você terá dois arquivos XML semelhantes chamados:
pytest-cobertura.xmlcoverage.xml-mypypermitirá apenas um diretório, não um nome de arquivo
Eu explorei a tentativa de mesclar esses dois arquivos em um único, mas não fui capaz de fazer isso com sucesso no tempo que passei nisso - mas deve ser algo como analisar a árvore XML e mesclar os dois conjuntos de linestags XML e a criação de um combined.xmlarquivo.
Agora, cada arquivo individualmente pode ser renderizado para terminal ou HTML com a pycoberturaferramenta, assim:
pycobertura show --format html --output coverage.html combined.xml
Ainda não consegui descobrir a fusão, mas gostaria de dar a você o que descobri.