2009-08-17 6 views
0

Si j'instrume deux fichiers jar dans emma, pointez-les sur le même fichier session emma, puis exécutez-les simultanément (par exemple, un client et un serveur), dois-je m'attendre à ce que les choses fonctionnent ou échouent lamentablement? Les bocaux sont construits à partir d'une source commune, donc je ne m'attends pas à des problèmes avec les métadonnées.emma prend-il en charge l'écriture simultanée dans des fichiers de session par plusieurs processus?

Je n'ai rien vu à ce sujet dans la documentation, donc si c'est là un pointeur serait certainement le bienvenu.

Répondre

1

Non, il ne peut pas. Emma écrit le résultat de l'instrumentation quand le processus se termine pour la plupart. Il remplace tout fichier dans la position existante, mais il écrit également un fichier texte et ne prend pas directement en charge la fusion au fur et à mesure ou la fusion de plusieurs rapports.

Il existe cependant un outil de profilage qui pourrait vous aider à le faire, appelé Grobo. Il a un mode de profilage "safe" qui écrit chaque événement dans le fichier de journalisation, puis ferme ce fichier journal. Cela peut permettre à plusieurs instances de s'exécuter et de sortir au même endroit et vous fournir des informations de profilage à jour sans arrêter le processus. Une version plus ancienne utilisée pour permettre la fusion des rapports de couverture mais la dernière version n'en fait aucune mention. Je l'ai utilisé dans le passé où Tomcat tue le thread de profilage d'Emma avant qu'il ne finisse d'écrire, et dans ce scénario le mode sans échec a travaillé pour s'assurer que toutes les données de couverture ont été écrites sans problèmes. Il peut également être utilisé pour obtenir une couverture à travers une série de tests qui, avec des tests d'intégration, peuvent parfois être très utiles. L'autre option, et probablement la meilleure, est Cobertura. Il a la capacité de fusionner plusieurs fichiers de rapport et vous pouvez donc exécuter chacun de vos processus Java avec un fichier de sortie différent, puis les fusionner tous à la fin pour produire votre rapport de couverture combinée.

Questions connexes