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 :

Ant et JUnit


Sujet :

ANT Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Par défaut Ant et JUnit
    Bonjour,

    Je tente depuis deux jours de savoir comment faire pour executer mes tests unitaires depuis un script Ant.

    Pour commencer, j'ai deux classes de tests:
    - TestDesk.Java
    - TestWinner.java

    Ils sont tous les deux crees sur la meme structure:
    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
     
    package Poker.Tests;
     
    import junit.framework.TestCase;
    import HoldemNL.DeskHoldemNL;
    import Poker.Card;
     
    public class TestDesk extends TestCase
    {
    	DeskHoldemNL d = null;
     
    	public TestDesk(String arg0)
    	{
    		super(arg0);
    	}
     
    	public void setUp()
    	{
    		d = new DeskHoldemNL();
    	}
     
    	public void tearDown()
    	{
    		d = null;
    	}
     
    	/**
             * Teste la detection d'une Hauteur
             */
    	public void testHauteur()
    	{
    		Card cards[] = {new Card('2','s'),
    						 new Card('3','d'),
    						 new Card('4','s'),
    						 new Card('5','d'),
    						 new Card('6','c'),
    						 new Card('7','h'),
    						 new Card('A','c') };
    		assertEquals(d.getNbCartesIdentiques(cards), 1);
    		assertEquals(d.getNbPaires(cards), 0);
    	}
    ...
    J'ai cree une classe AllTests de la facon suivante :

    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
     
    public class AllTests
    {
    	public static Test suite()
    	{
    		TestSuite suite = new TestSuite("Tests complets");
     
    		//$JUnit-BEGIN$
    		suite.addTest(new TestSuite(TestDesk.class));
    		suite.addTest(new TestSuite(TestWinner.class));
    		//$JUnit-END$
     
    		return suite;
    	}
    }
    Ensuite j'ai cree mon build.xml de la facon suivante :

    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
     
    <?xml version="1.0" encoding="ISO-8859-1" ?>
     
    <project name="Poker" default="runtests" basedir=".">
    	<property name="app.name" value="Poker" />
    	<property name="build.dir" value="build/classes" />
    	<property name="jar.junit" value="lib/junit.jar"/>
     
    	<target name="JUNIT" description="Tester si le classpath contient bien le jar de JUnit">
    		<available property="junit.present" classname="junit.framework.TestCase" />
    	</target>
     
    	<target name="compile" depends="JUNIT" description="Compiler les sources, sans compiler les tests">
    		<mkdir dir="${build.dir}"/>
    		<javac srcdir="src/" destdir="${build.dir}" >
    			<include name="**/*.java"/>
    		</javac>
    	</target>
     
    	<target name="jar" depends="compile" description="Créer un jar contenant seulement les classes normales (pas celles de test)">
    		<mkdir dir="build/lib"/>
    		<jar jarfile="build/lib/${app.name}.jar" basedir="${build.dir}" includes="fr/**"/>
    	</target>
     
    	<target name="runtests" depends="jar" if="junit.present" description="Compiler l'appli, créer le .jar, compiler les tests et lancer tous les tests du TestSuite *AllTests* en mode console">
    		<java fork="true" classname="junit.textui.TestRunner" taskname="junit" failonerror="true">
    			<arg value="Poker.Tests.TestDesk"/>
    			<classpath>
    				<pathelement path="${java.class.path}" />
    				<pathelement location="build/lib/${app.name}.jar" />
    				<pathelement location="${jar.junit}"/>
    				<pathelement location="build" />
    			</classpath>
    		</java>
    	</target>
    </project>
    Malgre des tentatives successives, j'arrive invariablement a ce resultat:
    Buildfile: C:\Documents and Settings\mma\Mes documents\Mon travail\AntTest\build.xml
    JUNIT:
    compile:
    [mkdir] Created dir: C:\Documents and Settings\mma\Mes documents\Mon travail\AntTest\build\classes
    [javac] Compiling 15 source files to C:\Documents and Settings\mma\Mes documents\Mon travail\AntTest\build\classes
    jar:
    [mkdir] Created dir: C:\Documents and Settings\mma\Mes documents\Mon travail\AntTest\build\lib
    [jar] Building MANIFEST-only jar: C:\Documents and Settings\mma\Mes documents\Mon travail\AntTest\build\lib\Poker.jar
    runtests:
    [junit] Class not found "Poker.Tests.TestDesk"

    BUILD FAILED
    C:\Documents and Settings\mma\Mes documents\Mon travail\AntTest\build.xml:25: Java returned: 1

    Total time: 1 second
    Est-ce quelqu'un aurait une idee ??? J'en ai besoin.

    merci de votre aide.

  2. #2
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Par défaut Ant et JUnit : La solution
    Il m'aura fallu a peine 30 minutes apres avoir poste mon appel a l'aide ici meme pour moi trouver la solution.

    L'erreur venait de la creation du .jar :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <target name="jar" depends="compile" description="Créer un jar contenant seulement les classes normales (pas celles de test)">
    		<mkdir dir="build/lib"/>
    		<jar jarfile="build/lib/${app.name}.jar" basedir="${build.dir}" includes="fr/**"/>
    	</target>
    La perversion du Copier/Coller m'a joue des tours. L'include ne correspond pas a mon projet mais a celui du projet depuis lequel j'ai recupere le script. L'archive etait bien creee mais lorsqu'on souhaitait l'executer.... nada.

    Une fois ce probleme resolu, les tests se deroulent sans problemes.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JUnit] Ant et JUnit : task junit et classpath
    Par nddvlp dans le forum Tests et Performance
    Réponses: 0
    Dernier message: 23/08/2012, 08h55
  2. Réponses: 6
    Dernier message: 17/10/2011, 16h22
  3. Réponses: 9
    Dernier message: 03/05/2011, 15h25
  4. [Ant][Junit] Unsupported Class Version Error
    Par ninox_ dans le forum ANT
    Réponses: 7
    Dernier message: 15/05/2007, 15h44
  5. [Ant] Eclipse + Ant + Junit
    Par Sylmandel dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 03/03/2006, 13h26

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