IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tomcat et TomEE Java Discussion :

[TOMCAT - Cobertura] - Couverture de code d'un jar lancé par Tomcat


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 163
    Points : 143
    Points
    143
    Par défaut [TOMCAT - Cobertura] - Couverture de code d'un jar lancé par Tomcat
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -Dnet.sourceforge.cobertura.datafile=d:/java/workspace/ProjetReferenceJade/Outils/checkRef/conf/cobertura.ser
    Merci.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 163
    Points : 143
    Points
    143
    Par défaut
    La doc Cobertura sur le sujet (site)

    Using Cobertura with a Web Application

    I have automated tests that use HttpUnit/HtmlUnit/Empirix/Rational Robot, can I use Cobertura?

    Yes! The process is a bit more involved, but the concept is the same. First instrument your compiled classes. Then create your war file. Then deploy the war file into your application server (Tomcat, JBoss, WebLogic, WebSphere, etc). Now run your tests.

    As your classes are accessed, they will create a "cobertura.ser" file on the disk. You may need to dig around a bit to find it. Cobertura puts this file in what it considers to be the current working directory. Typically this is the directory that the application server was started from (for example, C:\Tomcat\bin) Note: This file is not written to the disk until the application server exits. See below for how to work around this.

    Now that you know where the cobertura.ser file is, you should modify your deploy step so that it moves the original cobertura.ser to the appropriate directory in your application server, and then moves it back when finished testing. Then run cobertura-report.

    C'est pas très clair pour moi

Discussions similaires

  1. couverture de code avec test JUnit sur tomcat distant
    Par Hurricae dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 31/08/2010, 22h01
  2. [Cobertura] Glassfish et Cobertura:--couvertura du code
    Par asouchu dans le forum Qualimétrie
    Réponses: 1
    Dernier message: 25/09/2007, 16h17
  3. Outil de couverture de code gratuit plugin eclipse
    Par tx dans le forum Tests et Performance
    Réponses: 2
    Dernier message: 20/04/2007, 15h22
  4. Couverture de code PL/SQL
    Par jproto dans le forum PL/SQL
    Réponses: 5
    Dernier message: 05/03/2007, 10h48
  5. [DjUnit] Couverture de code
    Par maxtin dans le forum Qualimétrie
    Réponses: 1
    Dernier message: 12/02/2007, 14h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo