Pergunta

O meu ambiente de compilação está configurado para compilar, executar e criar o arquivo de cobertura na linha de comando (usando a ferramenta coverage.py Ned Batchelder).

Eu estou usando Eclipse com PyDev como meu editor, mas por razões práticas, não é possível / conveniente para mim para converter todo o meu ambiente de compilação para Eclipse (e, assim, gerar os dados de cobertura diretamente do IDE, como ele é projetado para fazer)

PyDev parece estar usando a mesma ferramenta de cobertura (ou algo muito semelhante a ele) para gerar as informações de cobertura, então eu estou supondo que deve haver alguma forma de integrar os meus arquivos de cobertura externa em Eclipse / PyDev.

Qualquer ideia sobre como fazer isso?

Foi útil?

Solução

Eu precisava exatamente algo como isto há algum tempo, quando PyDev ainda usou uma versão mais antiga do coverage.py do que a acessível a partir da página do criador script.

O que eu fiz foi detectar onde PyDev estava salvando seu arquivo .coverage. Para mim foi:

 C:\Users\Admin\workspace\.metadata\.plugins\org.python.pydev.debug\.coverage

Então eu corri manualmente uma nova versão do coverage.py a partir de um script separado e disse isso para salvar seu arquivo .coverage no lugar onde PyDev salva seu. Não me lembro se existe um argumento de linha de comando para coverage.py ou se eu simplesmente copiou o arquivo .coverage com um script, mas depois disso, se você simplesmente abrir o Cobertura de Código Resultados Ver e clique em informações de cobertura de atualização! , PyDev vai muito bem processar os dados como se gerou o arquivo em si.

Outras dicas

Eu não sei nada sobre a integração de coverage.py de PyDev (ou mesmo se ele usa coverage.py), mas os arquivos .coverage são bastante simples. Eles são dicionários marhsal'ed.

Eu não testei este código, mas você pode tentar este para combinar dois arquivos .coverage em um:

import marshal
c1_dict = marshal.load(open(file_name_1, 'rb'))
c2_dict = marshal.load(open(file_name_2, 'rb'))
c1_dict.update(c2_dict)
marshal.dump(c1_dict, open(file_name_out, 'wb'))
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top