2008-11-17 4 views
2

J'ai un problème avec EMMA où il couvre correctement tous mes divers projets Java sauf un. Je suis intrigué pour savoir pourquoi cela se produit car le script ANT semble être correct. La sortie attendue suivante est donnée:EMMA ne couvrira pas un de mes projets

[echo] c:\cc_local_home\emmadata\ProjectName 
[instr] processing instrumentation path ... 
[instr] instrumentation path processed in 1876 ms 
[instr] [84 class(es) instrumented, 0 resource(s) copied] 
[instr] metadata merged into [c:\cc_local_home\data\2008-11-17_14.35.19\coverage.emma] {in 62 ms} 

ci-dessus est produite par la pièce de script suivante ANT:

<target name="emma" depends="init" if="use.emma"> 
    <echo message="${emma.bin}" /> 
    <emma enabled="true"> 
    <instr instrpath="${test.bin}" destdir="${emma.bin}" metadatafile="${test.data.dir}/coverage.emma" merge="true"> 
     <filter excludes="*Test*,*test*" /> 
     <filter excludes="*Exception" /> 
     <filter excludes="*AppConstants" /> 
    </instr> 
    </emma> 
</target> 

Après les tests JUnit sont exécutés, le suivant est enregistré.

emma.report: [rapport] fichiers d'entrée de traitement ...
[rapport] 1 fichier (s) de lecture et fusionnées en 16 ms
[rapport] rien à voir: aucune donnée de couverture d'exécution trouvés dans tous les des fichiers de données

Et aucun rapport de couverture n'est généré.

Je suis certain que les fichiers coverage.emma sont correctement liés, alors pourquoi EMMA ne couvre-t-il pas le code?

La tâche emma.report se présente comme suit:

<target name="emma.report" if="use.emma"> 
    <emma enabled="true"> 
    <report sourcepath="${test.reports.dir}"> 
     <infileset dir="${test.data.dir}" includes="*.emma" /> 
     <html outfile="${test.reports.dir}/coverage.html" /> 
    </report> 
    </emma> 
</target> 
+0

Même problème ici. Bizarrement, l'exécution des tâches emma deux fois génère le rapport la deuxième fois. – ashes999

Répondre

0
<target name="emma.report" if="use.emma"> 
    <emma enabled="true"> 
    <report sourcepath="${test.reports.dir}"> 
     <infileset dir="${test.data.dir}" includes="*.emma" /> 
     <html outfile="${test.reports.dir}/coverage.html" /> 
    </report> 
    </emma> 
</target> 
+0

Cette information est mieux capturée en éditant la question et en l'y mettant. –

1

Je voudrais vérifier pour vous assurer que la cible JUnit est en cours d'exécution le code instrumenté, et non en cours d'exécution du code non instrumenté (qui ne produirait pas de données de couverture).

0

Vous obtenez cette erreur lorsque vous utilisez une commande incorrecte pour générer le rapport. La plupart du tutoriel en ligne préconise la mauvaise commande (peut-être par ancienne), même j'ai eu cette erreur lorsque j'ai utilisé la commande ci-dessous pour générer le rapport:

{JAVA_HOME} \ jre \ lib \ ext> java -cp emma. jar emma report -r html -dans coverage.em, {ALFRESCO_HOME} \ coverage.ec EMMA: traitement des fichiers d'entrée ... EMMA: 1 fichier (s) lu (s) et fusionné (s) en 60 ms EMMA: rien à faire: non les données de couverture d'exécution trouvées dans l'un des fichiers de données

l'utilisation correcte de la commande est: {JAVA_HOME} \ jre \ lib \ ext> java -cp rapport emma.jar emma -r txt, html -dans {JAVA_HOME } \ jre \ lib \ ext \ coverage.em dans C: \ t1_tempSetup \ Alfresco \ coverage.ec EMMA: traitement des fichiers d'entrée ... EMMA: 2 fichier (s) lu (s) et fusionné (s) en 70 ms EMMA: écriture d'un rapport [txt] vers [{JAVA_HOME} \ jre \ lib \ ext \ coverage.txt] ... EMMA: écriture d'un rapport [html] dans [{JAVA_HOME} \ jre \ lib \ ext \ coverage \ index.html]

Questions connexes