2012-09-02 19 views
6

Ich verwende reine JUnit 4 Test und ich habe sie in einigen Gläsern kompiliert, die zum Klassenpfad gehört. Ich möchte alle Tests in meinem Klassenpfad ausführen.JUnit run Tests in einem JAR

Gibt es einen Weg?

Meine Aufgaben wie folgt aussehen:

<target name="test" description="All the tests"> 
    <junit fork="yes"> 
     <classpath> 
      <path refid="test.classpath" /> 
      <fileset dir="war/WEB-INF/lib/"> 
       <include name="*.jar"/> 
      </fileset> 
      <fileset dir="war/WEB-INF"/> 
      <fileset dir="war"/> 
     </classpath> 
    <formatter type="plain" usefile="false" /> 

    </junit> 
</target> 

Antwort

5

Das folgende Beispiel der Tests JUnit übernimmt mit dem Zusatz „Test“ wie „MyClassTest.java“ genannt werden und dass das Glas JUnit 4-Datei ist in einem Bibliotheksverzeichnis wies auf die Eigenschaft lib.dir. Für jede jar-Datei, die kompilierte Tests enthält, kann eine ZipFileSet verwendet werden, um die Testklassen innerhalb eines verschachtelten Elements <batchtest> auszuwählen. Der Pfad zum JUnit 4 jar ist im Klassenpfad enthalten, um sicherzustellen, dass die richtige Version verwendet wird.

<target name="test" description="All the tests."> 
    <junit fork="true"> 
    <classpath> 
     <fileset dir="war/WEB-INF/lib/" includes="**/*.jar" /> 
     <fileset dir="${lib.dir}" includes="junit*.jar" /> 
    </classpath> 
    <batchtest haltonfailure="true"> 
     <zipfileset src="war/WEB-INF/lib/test.jar" includes="**/*Test.class" /> 
    </batchtest> 
    <formatter type="plain" usefile="false" /> 
    </junit> 
</target> 
+0

es funktioniert nur, danke –