web-dev-qa-db-fra.com

Ant, lance tous les tests jUnit

Le problème: les tests ne sont (apparemment) pas exécutés

Étape 1: compiler la source dans le répertoire bin

<target name="compile" depends="init" description="compile the source ">
    <javac srcdir="${src}" destdir="${build}" includeantruntime="true" nowarn="yes" debug="true" />
    <javac srcdir="${src}" destdir="${bin}" includeantruntime="true" nowarn="yes" debug="true" />
</target>

Étape 2: compiler les tests dans le bac

<target name="compileTest" depends="compile" description="compile jUnit Test cases ">
    <javac srcdir="${test-dir}" destdir="${bin}" includeantruntime="true" nowarn="yes" debug="true" />
</target>

Étape 3: recherchez Test.class (es) et exécutez-les

<target name="test" depends="compileTest">
        <junit>
            <formatter type="plain" usefile="false" />
            <formatter type="plain" />
            <batchtest>
                <fileset dir="${bin}" includes="**/Test*.class" />
            </batchtest>
        </junit>
    </target>

Sortie:

Buildfile: /Users/xx/Documents/repositories/app/build.xml
clean:
   [delete] Deleting directory /Users/xx/Documents/repositories/app/build
   [delete] Deleting directory /Users/xx/Documents/repositories/app/bin
init:
    [mkdir] Created dir: /Users/xx/Documents/repositories/app/build
    [mkdir] Created dir: /Users/xx/Documents/repositories/app/bin
compile:
    [javac] Compiling 145 source files to /Users/xx/Documents/repositories/app/build
    [javac] Compiling 145 source files to /Users/xx/Documents/repositories/app/bin
compileTest:
    [javac] Compiling 24 source files to /Users/xx/Documents/repositories/app/bin
test:
dist:
   [delete] Deleting: /Users/xx/Documents/repositories/app/dist/app.jar
      [jar] Building jar: /Users/xx/Documents/repositories/app/dist/app.jar
     [copy] Copying 1 file to /Users/xx/Documents/repositories/app/dist
   [delete] Deleting: /Users/xx/Documents/repositories/app/dist/app.war
      [war] Building war: /Users/xx/Documents/repositories/app/dist/app.war
     [copy] Copying 1 file to /Users/xx/Documents/repositories/app/dist
BUILD SUCCESSFUL
Total time: 5 seconds

Qu'est-ce qui me manque, s'il vous plaît?  

15
JAM

Je crois que vous pouvez utiliser batchtest inside junit task:

<target name="test" depends="compileTest">
  <junit>
    <classpath>
      <pathelement location="bin" />    
      <pathelement location="lib/junit-4.10.jar"/>
    </classpath>    
    <batchtest>
       <fileset dir="${test}">
            <include name="**/*Test*" />
       </fileset>
    </batchtest>
    <formatter type="brief" usefile="false"/>
  </junit>
</target>   

Note les éléments suivants:

  • Dans fileset dir="${test}" devrait pointer vers le répertoire source pour les tests.
  • Dans include name="**/*Test*", vous devriez pas spécifier .class extension; ce devrait être .Java ou rien.
  • Vous devez ajouter le répertoire de sortie de test en tant que "chemin de classe" pour l'élément de tâche junit.

J'ai eu un test avec un projet simple et avec la même configuration, j'ai eu les résultats brefs. J'ai utilisé Apache Ant 1.7.1.

23
nobeh

Utilisez " batchtest " comme ceci:

  <batchtest>
    <fileset dir="${tst-dir}" includes="**/Test*.class" />
  </batchtest>

Exemple présent sur ici .

EDIT:

Pour l’impression de résumé, voir ant junit ne rapporte pas de détails et ceci

Notez que vous n'avez plus besoin des attributs printsummary="yes" et showoutput="true" dans la tâche Junit. Le formateur prend en charge la sortie maintenant.

<target name="test" depends="compileTest">
    <junit>
        <formatter type="plain" usefile="false" /> <!-- to screen -->
        <formatter type="plain" /> <!-- to file -->

        <batchtest>
            <fileset dir="${bin}" includes="**/Test*.class" />
        </batchtest>
    </junit>
</target>
1
Tejas Patil