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

ANT Java Discussion :

Génerer un rapport Junit via Ant


Sujet :

ANT Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 173
    Par défaut Génerer un rapport Junit via Ant
    Bonjour à tous,

    je voudrais avoir des renseignements, des exemples, ou de bons tutoriels sur la façon d'utiliser junit avec ant pour l'automatisation des tests.
    Junit, j'ai réussi à établir les tests de mes classes.
    Mais je voudrais automatiser tout ces tests et récuperer dans une page html un tableau récapitulatif de ces tests.

    Merci d'avance.

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 350
    Par défaut
    Bonjour,

    Il te faut regarder les taches Ant Junit et Ant Junitreport

    Pour exécuter tes tests:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	<junit printsummary="yes" fork="yes" haltonfailure="yes" >
    		<classpath refid="test.path.id"/>	
    		<formatter type="xml"/>
    		<batchtest todir="${report.test.dir}" >
    		    <fileset dir="${build.test.dir}">
    		    	<include name="**/**Test.*"/>
    		    </fileset>	
    		</batchtest>
    	</junit>
    Un fichier TEST-*.xml sera crée par classe de test.

    Puis la tache
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
             <junitreport todir="${report.test.dir}">
    	  <fileset dir="${report.test.dir}">
    	    <include name="TEST-*.xml"/>
    	  </fileset>
    	  <report format="frames" todir="build/site/test-report/html"/>
    	</junitreport>
    va produire un fichier testsuite qui agrege l’ensemble des fichiers de tests. La tache va ensuite produire un rapport au format HTML.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 173
    Par défaut
    Citation Envoyé par gboissinot Voir le message
    Bonjour,

    Il te faut regarder les taches Ant Junit et Ant Junitreport

    Pour exécuter tes tests:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	<junit printsummary="yes" fork="yes" haltonfailure="yes" >
    		<classpath refid="test.path.id"/>	
    		<formatter type="xml"/>
    		<batchtest todir="${report.test.dir}" >
    		    <fileset dir="${build.test.dir}">
    		    	<include name="**/**Test.*"/>
    		    </fileset>	
    		</batchtest>
    	</junit>
    Un fichier TEST-*.xml sera crée par classe de test.

    Puis la tache
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
             <junitreport todir="${report.test.dir}">
    	  <fileset dir="${report.test.dir}">
    	    <include name="TEST-*.xml"/>
    	  </fileset>
    	  <report format="frames" todir="build/site/test-report/html"/>
    	</junitreport>
    va produire un fichier testsuite qui agrege l’ensemble des fichiers de tests. La tache va ensuite produire un rapport au format HTML.
    Bonjour,

    J'ai pu générer un rapport Junit mais seulment je ne sais comment personnaliser le contenu: exemple, je veux supprimer la balise "Properties"? Comment est ce que je dois modifier la tâche junitreport.
    La rapport générée est le suivant
    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
    <testsuite errors="0" failures="1" hostname="carole-laptop" name="HelloWorldTest" tests="2" time="0.099" timestamp="2009-03-23T14:51:55">
    +
    	<properties>
    <property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/>
    <property name="sun.boot.library.path" value="/usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/i386"/>
    <property name="java.vm.version" value="1.6.0_03-b05"/>
    <property name="ant.library.dir" value="/home/carole/Bureau/Ant/eclipse/plugins/org.apache.ant_1.7.0.v200803061910/lib"/>
    <property name="ant.version" value="Apache Ant version 1.7.0 compiled on December 13 2006"/>
    <property name="ant.java.version" value="1.6"/>
    <property name="java.vm.vendor" value="Sun Microsystems Inc."/>
    <property name="java.vendor.url" value="http://java.sun.com/"/>
    <property name="path.separator" value=":"/>
    <property name="java.vm.name" value="Java HotSpot(TM) Server VM"/>
    <property name="file.encoding.pkg" value="sun.io"/>
    <property name="user.country" value="FR"/>
    <property name="sun.java.launcher" value="SUN_STANDARD"/>
    <property name="sun.os.patch.level" value="unknown"/>
    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
    <property name="user.dir" value="/home/carole/Bureau/Ant/workspace/com.serli.ant"/>
    <property name="ant.file.HelloWorld" value="/home/carole/Bureau/Ant/workspace/com.serli.ant/build.xml"/>
    <property name="java.runtime.version" value="1.6.0_03-b05"/>
    <property name="java.awt.graphicsenv" value="sun.awt.X11GraphicsEnvironment"/>
    <property name="eclipse.pdebuild.scripts" value="/home/carole/Bureau/Ant/eclipse/plugins/org.eclipse.pde.build_3.4.1.R34x_v20080805/scripts//"/>
    <property name="basedir" value="/home/carole/Bureau/Ant/workspace/com.serli.ant"/>
    <property name="java.endorsed.dirs" value="/usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/endorsed"/>
    <property name="os.arch" value="i386"/>
    <property name="java.io.tmpdir" value="/tmp"/>
    <property name="ant.core.lib" value="/home/carole/Bureau/Ant/eclipse/plugins/org.apache.ant_1.7.0.v200803061910/lib/ant.jar"/>
    <property name="line.separator" value=" "/>
    <property name="java.vm.specification.vendor" value="Sun Microsystems Inc."/>
    <property name="os.name" value="Linux"/>
    <property name="ant.home" value="/home/carole/Bureau/Ant/eclipse/plugins/org.apache.ant_1.7.0.v200803061910"/>
    <property name="eclipse.pdebuild.templates" value="/home/carole/Bureau/Ant/eclipse/plugins/org.eclipse.pde.build_3.4.1.R34x_v20080805/templates//"/>
    <property name="build.dir" value="build"/>
    <property name="ant.project.name" value="HelloWorld"/>
    <property name="sun.jnu.encoding" value="UTF-8"/>
    <property name="java.library.path" value="/usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/i386/server:/usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/i386:/usr/lib/jvm/java-6-sun-1.6.0.03/jre/../lib/i386:/usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/i386/client:/usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/i386:/usr/lib/firefox/:/usr/lib/firefox/:/usr/java/packages/lib/i386:/lib:/usr/lib"/>
    <property name="eclipse.pdebuild.home" value="/home/carole/Bureau/Ant/eclipse/plugins/org.eclipse.pde.build_3.4.1.R34x_v20080805/.//"/>
    <property name="java.class.version" value="50.0"/>
    <property name="java.specification.name" value="Java Platform API Specification"/>
    <property name="lib.dir" value="lib"/>
    <property name="sun.management.compiler" value="HotSpot Server Compiler"/>
    <property name="os.version" value="2.6.22-15-generic"/>
    <property name="ant.file" value="/home/carole/Bureau/Ant/workspace/com.serli.ant/build.xml"/>
    <property name="user.home" value="/home/carole"/>
    <property name="user.timezone" value=""/>
    <property name="java.awt.printerjob" value="sun.print.PSPrinterJob"/>
    <property name="java.specification.version" value="1.6"/>
    <property name="file.encoding" value="UTF-8"/>
    <property name="user.name" value="carole"/>
    <property name="java.class.path" value="/home/carole/Bureau/Ant/workspace/com.serli.ant/lib/log4j-1.2.15.jar:/home/carole/Bureau/Ant/workspace/com.serli.ant/build/jar/HelloWorld.jar:/home/carole/Bureau/Ant/eclipse/plugins/org.junit_3.8.2.v20080602-1318/junit.jar:/home/carole/Bureau/Ant/eclipse/plugins/org.apache.ant_1.7.0.v200803061910/lib/ant-launcher.jar:/home/carole/Bureau/Ant/eclipse/plugins/org.apache.ant_1.7.0.v200803061910/lib/ant.jar:/home/carole/Bureau/Ant/eclipse/plugins/org.apache.ant_1.7.0.v200803061910/lib/ant-junit.jar"/>
    <property name="report.dir" value="build/junit.report"/>
    <property name="java.vm.specification.version" value="1.0"/>
    <property name="sun.arch.data.model" value="32"/>
    <property name="java.home" value="/usr/lib/jvm/java-6-sun-1.6.0.03/jre"/>
    <property name="java.specification.vendor" value="Sun Microsystems Inc."/>
    <property name="user.language" value="fr"/>
    <property name="classes.dir" value="build/classes"/>
    <property name="java.vm.info" value="mixed mode"/>
    <property name="java.version" value="1.6.0_03"/>
    <property name="java.ext.dirs" value="/usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/ext:/usr/java/packages/lib/ext"/>
    <property name="sun.boot.class.path" value="/usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/resources.jar:/usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/rt.jar:/usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/jsse.jar:/usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/jce.jar:/usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/charsets.jar:/usr/lib/jvm/java-6-sun-1.6.0.03/jre/classes"/>
    <property name="java.vendor" value="Sun Microsystems Inc."/>
    <property name="file.separator" value="/"/>
    <property name="java.vendor.url.bug" value="http://java.sun.com/cgi-bin/bugreport.cgi"/>
    <property name="src.dir" value="src"/>
    <property name="sun.cpu.endian" value="little"/>
    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
    <property name="main-class" value="oata.HelloWorld"/>
    <property name="sun.desktop" value="gnome"/>
    <property name="jar.dir" value="build/jar"/>
    <property name="sun.cpu.isalist" value=""/>
    </properties>
    <testcase classname="HelloWorldTest" name="testNothing" time="0.0020"/>
    −
    	<testcase classname="HelloWorldTest" name="testWillAlwaysFail" time="0.0060">
    −
    	<failure message="An error message" type="junit.framework.AssertionFailedError">
    junit.framework.AssertionFailedError: An error message
    	at HelloWorldTest.testWillAlwaysFail(Unknown Source)
    </failure>
    </testcase>
    <system-out></system-out>
    <system-err></system-err>
    </testsuite

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 350
    Par défaut
    La balise <properties> contient les propriétés du contexte d'exécution des tests.
    Il n'y a pas de raison de la supprimer. Au contraire, il s'agit d'une information très importante en terme de tracabilité.
    Mais ici, ce qui est important dans le fichier testuiste, ce sont les testcases.

    Je ne vois donc pas de raison de vouloir personnaliser le contenu de ce fichier dont sa structure respecte un standard; et peut être ensuite donnée en entrée par exemple à un serveur d’intégration continue.

  5. #5
    Membre actif
    Inscrit en
    Août 2010
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 78
    Par défaut
    Bonjour ,

    je lance un build pour executer un test junit et generer un rapport html et ca me retourne un page html avec 0 test

    Build.xml
    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
     
    <project name="SampleJUnitTests" default="Ltest" basedir=".">
        <description>
            Sample JUnit Tests
        </description>
      <!-- set global properties for this build -->
     
      <property name="project_name" value="junitSamples"/>
      <property name="src" location="src"/>
      <property name="build" location="bin"/>
      <property name="dist"  location="dist"/>
      <property name="lib"  location="lib"/>
      <property name="res"  location="res"/>
      <property name="reports" location="reports"/>
     
      <!-- the names of various distributable files -->
      <property name="jar_name" value="${project_name}.jar"/>
      <property name="war_name" value="${project_name}.war"/>
     
    	<!-- top level targets -->
     
      <target name="compile"  description="compile the source code " >
    		<javac includeantruntime="true" srcdir="${src}" destdir="${build}">  
    			<classpath>
    				<fileset dir="lib">
    					<include name="**/*.jar"/>
    				</fileset>
    			</classpath>
    		</javac>
      </target>
     
      <target name="dist" description="generate the distributable files " > 
        <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
       <jar jarfile="${dist}/${jar_name}" basedir="${build}"/> 
      </target>
     
      <target name="clean" description="clean up" >
        <!-- Delete the ${build} and ${dist} directory trees -->
        <delete dir="${build}"/>
        <delete dir="${dist}"/>
        <delete dir="${reports}"/>
      </target>
     
    	<target name="run-tests"  description="run your test suite" >	
    		  <junit haltonerror="yes" haltonfailure="yes" printsummary="yes">
    			<classpath>
    				<pathelement path="${build}"/>
    				<fileset dir="lib">
    					<include name="**/*.jar"/>
    				</fileset>
    			</classpath>			
    		<formatter type="xml"/>
     		  <batchtest fork="yes" todir="${reports}/raw/">	  	
    		    <fileset dir="${src}">
    		      <include name="**/*Test*.java"/>
    		    </fileset>
    		  </batchtest>
    		</junit>	
    	</target>
     
      <target name ="test" depends="run-tests">
    		<junitreport todir="${reports}">
    		  <fileset dir="${reports}/raw/">
    		    <include name="TEST-*.xml"/>
    		  </fileset>
    		  <report format="frames" todir="${reports}\html\"/>
    		</junitreport>
      </target>
     
     
    	 <target name="init" description="initialize the build environment" >
        <!-- Create the time stamp -->
        <tstamp/>
        <!-- Create directory structures -->
        <mkdir dir="${build}"/>
        <mkdir dir="${lib}"/>
        <mkdir dir="${dist}/lib"/>
        <mkdir dir="${reports}"/>
        <mkdir dir="${reports}/raw/"/>
        <mkdir dir="${reports}/html/"/>
      </target>
     
      <!--<target name="all" depends="clean, test">
     
      </target>-->
     
      <target name="Ltest" depends=""  >
            <antcall target="init" inheritall="true" inheritrefs="false"/>
            <antcall target="compile" inheritall="true" inheritrefs="false"/>
    		 <antcall target="dist" inheritall="true" inheritrefs="false"/>
    		  <antcall target="test" inheritall="true" inheritrefs="false"/>
        </target>
     
    </project>
    et son resultat sur eclipse ca me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    soapUI 4.0.1 TestCase Runner
    09:59:28,322 WARN  [SoapUI] Missing folder [C:\workspace\WorkspaceTp\TestUnitaire\.\ext] for external libraries
    09:59:28,594 INFO  [DefaultSoapUICore] initialized soapui-settings from [C:\Users\Ayoub\soapui-settings.xml]
    09:59:29,288 INFO  [WsdlProject] Loaded project from [file:/C:/workspace/WorkspaceTp/TestUnitaire/test/Demo-soapui-project.xml]
    09:59:29,600 INFO  [SoapUITestCaseRunner] Running soapUI tests in project [Demo]
    09:59:29,602 INFO  [SoapUITestCaseRunner] Running Project [Demo], runType = SEQUENTIAL
    09:59:29,616 INFO  [SoapUITestCaseRunner] Running soapUI testcase [TestCase 1]
    09:59:29,624 INFO  [SoapUITestCaseRunner] running step [regionsInfoByIana - Request 1]
    09:59:30,372 WARN  [AbstractSoapVersion] Ignoring validation error: error: cvc-complex-type.3.2.2: Attribute not allowed: encodingStyle@http://schemas.xmlsoap.org/soap/envelope/ in element Envelope@http://schemas.xmlsoap.org/soap/envelope/
    09:59:30,775 INFO  [SoapUITestCaseRunner] Assertion [SOAP Response] has status VALID
    09:59:30,775 INFO  [SoapUITestCaseRunner] Assertion [XPath Match] has status VALID
    09:59:30,775 INFO  [SoapUITestCaseRunner] Finished running soapUI testcase [TestCase 1], time taken: 1143ms, status: FINISHED
    09:59:30,776 INFO  [SoapUITestCaseRunner] Project [Demo] finished with status [FINISHED] in 1169ms

Discussions similaires

  1. Lancer JUnit tests d'un plugin via Ant
    Par DaveShot dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 26/02/2010, 16h28
  2. Ecraser des propriétés en lançant Junit via Eclipse
    Par Shogun dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 18/12/2007, 15h09
  3. ireport suffit il pour génerer des rapports???*
    Par delphine_ps dans le forum iReport
    Réponses: 2
    Dernier message: 12/12/2007, 11h02
  4. Erreur suppression projet sur Tomcat via Ant
    Par stujava dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 09/08/2007, 10h20
  5. [JUnit] Rapport JUnit via ResultPrinter
    Par sachem dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 31/07/2006, 09h39

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