Question

Mon environnement de construction est configuré pour compiler, exécuter et créer un fichier de couverture sur la ligne de commande (à l'aide de l'outil Ned Batchelder coverage.py).

J'utilise Eclipse avec PyDev comme éditeur, mais pour des raisons pratiques, il m'est impossible de convertir tout mon environnement de construction en Eclipse (et de générer ainsi les données de couverture directement à partir de l'EDI, car il est conçu pour faire)

PyDev semble utiliser le même outil de couverture (ou quelque chose de très similaire) pour générer ses informations de couverture. Je suppose donc qu'il devrait exister un moyen d'intégrer mes fichiers de couverture externes dans Eclipse / PyDev.

Avez-vous une idée de la façon de procéder?

Était-ce utile?

La solution

J'avais exactement besoin de quelque chose comme ça il y a quelque temps, quand PyDev utilisait encore une version plus ancienne de coverage.py que celle accessible depuis la page du créateur du script.

Ce que j’ai fait, c’était de détecter où PyDev enregistrait son fichier .coverage . Pour moi c'était:

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

Ensuite, j'ai exécuté manuellement une nouvelle version de coverage.py à partir d'un script distinct et lui ai dit de sauvegarder son fichier .coverage à l'emplacement où PyDev l'enregistre. Je ne me souviens pas s'il existe un argument de ligne de commande pour coverage.py ou si j'ai simplement copié le fichier .coverage avec un script, mais après cela, si vous ouvrez tout simplement Dans la vue Résultats de la couverture de code , cliquez sur Actualiser les informations de couverture! . PyDev traitera ainsi les données comme si elles avaient généré le fichier lui-même.

Autres conseils

Je ne connais rien à l'intégration de couverture.py par PyDev (ou même s'il utilise la couverture.py), mais les fichiers .coverage sont assez simples. Ce sont des dictionnaires marhsales.

Je n'ai pas testé ce code, mais vous pouvez essayer de combiner deux fichiers .coverage en un seul:

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'))
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top