JUnit Ant-Task

McLeise

Grünschnabel
Hi, ich bin hier neu und habe mich, nachdem ich schon öfter auf diesen Seiten Hilfe gefunden habe, nun angemeldet, da ich nicht weiter komme.

Ich versuche JUnit-Tests mittels einer Ant-Task ablaufen zu lassen. Leider bekomme ich immer eine "java.lang.ClassNotFoundException". Ich habe jetzt bereits mehrere Stunden und etliche Websites und Foren durchstöbert, bin aber nicht zu einer Lösung gekommen.

Hier meine build.xml:
Java:
<project name = "StackTest" default="JUNIT" basedir=".">
    <description>
        ANT-File for Testing the Stack
    </description>
	
    <!--******************************
         Compilieren des Projekts
    *******************************-->
    
    <property name="src" location="src"/>
    <property name="build" location="build"/>
    <property name="dist"  location="dist"/>
    <property name="testpath" location="build/de/foo/bar"/>
    <path id="classpath.base">
    </path>
    <path id="classpath.test">
      <pathelement path="C:/Programme/junit4.8.1/junit-4.8.1.jar" />
      <pathelement path="${testpath}" />
      <path refid="classpath.base" />
    </path>

    
    <target name="clean">
        <!-- Erstellte Verzeichnisse loeschen -->
            <delete dir="${build}"/>
            <delete dir="${dist}"/>
   </target>
	
    <target name="compile" depends="clean">
        <!-- Compiliere den JAVA-Code -->
        <echo>Compile ...</echo>
        <mkdir dir="${build}"/>
        <javac srcdir="${src}" debug="true" optimize="false" includes="**/*.java" destdir="${build}"/>
      </target>
	
    <target name="dist" depends="compile">
        <!-- Erstellen der Distribution -->
        <echo>Erstellen der Distribution ...</echo>
        <mkdir dir="${dist}/lib"/>
        <!-- Alles in StackTest.jar Datei -->
        <jar jarfile="${dist}/lib/StackTest.jar" basedir="${build}"/>
    </target>
	
    <!--******************************
            Aufrufen der Tests
    *******************************-->
    <target name="JUNIT" depends="dist">
    <junit printsummary="yes" fork="yes" haltonfailure="no" showoutput="true">
      <formatter type="plain"/>
      <classpath refid="classpath.test"/>
      <test name="TestMyStack.class"/>
    </junit>
    </target>
    
</project>

Die Consolenausgabe:
Code:
Buildfile: C:\Dokumente und Einstellungen\tme\workspace\Stack\build.xml
clean:
compile:
     [echo] Compile ...
    [mkdir] Created dir: C:\Dokumente und Einstellungen\tme\workspace\Stack\build
     C:\Dokumente und Einstellungen\tme\workspace\Stack\build.xml:33: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
     Compiling 2 source files to C:\Dokumente und Einstellungen\tme\workspace\Stack\build
     Note: C:\Dokumente und Einstellungen\tme\workspace\Stack\src\foo\bar\TestMyStack.java uses unchecked or unsafe operations.
     Note: Recompile with -Xlint:unchecked for details.
dist:
     [echo] Erstellen der Distribution ...
    [mkdir] Created dir: C:\Dokumente und Einstellungen\tme\workspace\Stack\dist\lib
      [jar] Building jar: C:\Dokumente und Einstellungen\tme\workspace\Stack\dist\lib\StackTest.jar
JUNIT:
    [junit] Running TestMyStack.class
    [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
    [junit] Test TestMyStack.class FAILED
BUILD SUCCESSFUL
Total time: 3 seconds

Und zu guter Letzt die Ausgabe in der Datei:
Code:
Testsuite: TestMyStack.class
Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec

	Caused an ERROR
TestMyStack.class
java.lang.ClassNotFoundException: TestMyStack.class
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)

Ich schätze es liegt am classpath.test, weiß aber nicht wie ich den anpassen muss. Das kann doch eigentlich nicht so schwer sein, oder?

Danke im Voraus für die Antworten... :)

:EDIT:
Ich vergaß noch mitzuteilen, dass die Tests innerhalb von Eclipse als JUnit-Tests ohne Probleme laufen ;)
 
Zuletzt bearbeitet:

Bei mir funktionierte es folgendermaßen:
--> "Run as"
--> "External Tools Configuration"
--> Auswahl der richtigen build-Datei (sofern mehrere vorhanden sind)
--> Reiter "Classpath"
--> "User-Entries" anklicken
--> Button: "Add external Jars..."
und dort dann die JUnit-Jars einfügen (junit-4.8.1.jar und junit-4.8.1-src.jar)
 

Neue Beiträge

Zurück