2012-03-19 18 views
5

Próbuję uruchomić test Junit z mojego pliku ant build.xml. Czytam here, że można użyć pliku junit.jar zamiast używać .jar, który znajduje się w katalogu ant.home/lib. To właśnie chcę zrobić, ponieważ nasza konfiguracja autobuild Jenkins nie ma pliku junit.jar w swoim katalogu ant lib.Junit ant task - JUnitTask nie został znaleziony

Nawet z najprostszym projektem, zawsze otrzymuję ten błąd, że JUnitTask nie został znaleziony. Jeśli spojrzysz na mój plik build.xml, zostanie on wyraźnie uwzględniony i użyty w zdzierżawionym zadaniu.

build.xml:

<project default="all"> 
    <property name="TALK" value="false" /> 

    <path id="classpath.base"> 
    </path> 
    <path id="classpath.test"> 
     <fileset dir="." includes="**/*.jar" /> 
    </path> 

    <target name="compile-test"> 
     <javac srcdir="src" verbose="${TALK}"> 
      <classpath refid="classpath.test" /> 
     </javac> 
    </target> 

    <target name="test" depends="compile-test"> 
     <junit> 
      <classpath refid="classpath.test" /> 
      <formatter type="brief" usefile="false" /> 
      <test name="TestClass" /> 
     </junit> 
    </target> 

    <target name="all" depends="test" /> 
</project> 

Mały przykład Zrobiłem przetestować rzeczy wygląda następująco:

image

EDIT: zaktualizowano na podstawie odpowiedzi

Odpowiedz

8

junit- Dokumentacja jest nieco skąpa.
Jeśli masz ant-junit.jar poza ANT_HOME/lib trzeba zdefiniować zadania samemu (The <taskdef/> jest z FAQ, który jest również nieco źle, ponieważ mówi używać class="...", który nie istnieje jako atrybut do <taskdef />):

<path id="classpath.test"> 
    <fileset dir="." includes="*junit.jar" /> 
</path> 

<taskdef name="junit" 
    classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"> 
    <classpath refid="classpath.test"/> 
</taskdef> 

ten może być stosowany w celu sprawdzenia ścieżki:

<pathconvert property="testoutput" refid="classpath.test"/> 
<echo>Path = ${testoutput}</echo> 

Dokumentacja:
junit task.


Dodatkowe informacje można znaleźć w this chat transcript

+0

nie wyszło. – David

+0

@David masz ant-junit.jar int ant_home/lib? Potrzebujesz tej biblioteki również gdzieś. Zobacz dokumentację: http://ant.apache.org/manual/Tasks/junit.html – oers

+0

Nie, nie, ale jeśli czytasz wiersz, to mówi: 2. Nie umieszczaj ani w ANT_HOME/lib, i zamiast tego dołączaj ich lokalizacje w zmiennej środowiskowej CLASSPATH. – David

0

moje rozwiązanie jest utworzyć zmienną CLASSPATH w Jenkins Systemu skonfigurować i dodać Ant-junit.jar ścieżkę

Powiązane problemy