Je pose mon problème, en espérant que quelqu'un pourra y trouver une solution.
Je souhaite réaliser de la couverture de code, via Cobertura (j'ai vu qu'Emma semblait similaire). Celle-ci sur du code contenu dans un jar qui est utilitaire et utiliser via l'application lancée par Tomcat.
Hors, j'arrive bien à lancer mes tests unitaires, qui fonctionnent.
Mais impossible de voir qu'elles class du jar, il utilise au niveau du serveur.
Mon fichier ant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
| <?xml version="1.0" encoding="UTF-8"?>
<project name="cobertura.examples.basic" default="coverage" basedir="../..">
<description>
Cobertura - http://cobertura.sourceforge.net/
</description>
<!-- Environnement de travail -->
<property file="Outils/checkRef/conf/buildCobertura.properties" />
<!-- declaration des paths -->
<path id="cobertura.classpath">
<!--Deja dans classpath<pathelement location="D:/java/workspace/ProjetReferenceJade/Outils/checkRef/cobertura/instrumented/sigma-standard2.jar"/>-->
<pathelement location="${classes.dir}" />
<pathelement location="${classesSJ.dir}" />
<fileset dir="${libTests.dir}">
<include name="**/*.jar"/>
</fileset>
<!-- Librairies Cobertura -->
<fileset dir="${cobertura.dir}">
<include name="**/*.jar" />
</fileset>
</path>
<taskdef classpathref="cobertura.classpath" resource="tasks.properties"/>
<!-- Initialisation - creation des repertoires contenant les rapports -->
<target name="init">
<!-- Cree l horodatage -->
<tstamp>
<format property="date" pattern="dd-MM-yy" locale="FRENCH"/>
</tstamp>
<!-- Repertoires des fichiers compiles et instrumentes -->
<mkdir dir="${classes.dir}" />
<mkdir dir="${instrumented.dir}" />
<!-- Repertoires de destination des rapports -->
<mkdir dir="${rep_dest_report}/${date}/${junit.xml.dir}" />
<mkdir dir="${rep_dest_report}/${date}/${junit.html.dir}" />
<mkdir dir="${rep_dest_report}/${date}/${coverage.xml.dir}" />
<mkdir dir="${rep_dest_report}/${date}/${coverage.html.dir}" />
</target>
<!-- Compilation -->
<target name="compile" depends="init">
<javac srcdir="${src.dir}" destdir="${classes.dir}" debug="yes">
<classpath refid="cobertura.classpath" />
</javac>
</target>
<!-- Instrumentation des classes -->
<target name="instrument" depends="compile">
<cobertura-instrument todir="${instrumented.dir}" datafile="${datafile}">
<ignore regex="org.apache.log4j.*" />
<fileset dir="${lib.dir}">
<include name="standard2.jar" />
</fileset>
</cobertura-instrument>
</target>
<target name="test" depends="compile">
<echo message="tests JUNIT"/>
<junit fork="yes" haltonfailure="no" failureProperty="test.failed">
<!--Deplacer dans config Tomcat<sysproperty key="net.sourceforge.cobertura.datafile"
file="${datafile}" />-->
<classpath refid="cobertura.classpath" />
<formatter type="xml"/>
<test name="${testcase}" todir="${rep_dest_report}/${date}/${junit.xml.dir}" if="testcase" />
<batchtest todir="${rep_dest_report}/${date}/${junit.xml.dir}" unless="testcase">
<fileset dir="${src.dir}">
<include name="**/TestFonctionnementNormal*"/>
</fileset>
</batchtest>
</junit>
</target>
<target name="test-report" depends="test">
<junitreport todir="${rep_dest_report}/${date}/${junit.xml.dir}">
<fileset dir="${rep_dest_report}/${date}/${junit.xml.dir}">
<include name="TEST-*.xml" />
</fileset>
<report format="frames" todir="${rep_dest_report}/${date}/${junit.html.dir}" styledir="Outils/checkRef/conf"/>
</junitreport>
</target>
<target name="coverage-check">
<cobertura-check branchrate="34" totallinerate="100" />
</target>
<target name="coverage-report">
<cobertura-report srcdir="${instrumented.dir}/src"
destdir="${rep_dest_report}/${date}/${coverage.xml.dir}"
format="xml"
datafile="${datafile}"/>
</target>
<target name="alternate-coverage-report">
<cobertura-report destdir="${rep_dest_report}/${date}/${coverage.html.dir}" datafile="${datafile}">
<fileset dir="${instrumented.dir}/src">
<include name="**/*.java"/>
</fileset>
</cobertura-report>
</target>
<target name="coverage"
description="Compile, instrument ourself, run the tests and generate JUnit and coverage reports."
depends="compile,instrument,test-report"/>
<!--coverage-report,alternate-coverage-report : lances apres interruption Tomcat qui charge donnees-->
</project> |
J'ai ajouté ceci au paramètre de la JVM de Tomcat :
-Dnet.sourceforge.cobertura.datafile=d:/java/workspace/ProjetReferenceJade/Outils/checkRef/conf/cobertura.ser
Merci.
Partager