eine weitere java.lang.ClassNotFoundException in der Junit-Aufgabe von ant

8

Ich kann nicht herausfinden, warum ich diese Ausnahme von meiner ant build.xml-Datei bekomme. Ich habe überprüft und alles ist im Klassenpfad. Warum muss das so kompliziert sein?!

Ich hatte in der Vergangenheit Probleme mit Ant und es scheint, dass es immer etwas mit dem Klassenpfad zu tun hat. Ich zeige auf junit.jar mit beiden Möglichkeiten: innerhalb von Eclipse: window- & gt; Einstellungen- & gt; ant- & gt; runtime- & gt; Ant Home- & gt; Fügen Sie externe Jars hinzu, und auch innerhalb des build.xml-Skripts. Dieses Mal kann Ant meine Testklasse in der Junit-Task nicht finden. Ist etwas falsch mit der Art, wie ich auf diese Klasse hinweise?

%Vor%

Ich bekomme immer:

%Vor%

Anscheinend findet Ant junit.jar und versucht, den Test zu starten, aber warum kann er meine Testklasse nicht finden? Ich zeige auf den Ordner mit der kompilierten Testklasse. Ich weiß also, dass Junit zumindest auf Ant's Klassenpfad ist, aber der ClassNotFound verwirrt mich.

Irgendwelche Ideen vielleicht? Vielen Dank!

    
denchr 01.08.2009, 03:05
quelle

2 Antworten

6

Sind Sie sicher, dass sich Ihre Testklasse im Ordner build befindet? Sie rufen junit in einer separaten JVM (fork = true) auf, daher ist es möglich, dass sich der Arbeitsordner während dieses Aufrufs ändert und dass build relativ ist, was zu einem Problem führen kann.

Führe ant aus der Befehlszeile (nicht aus Eclipse) mit -verbose oder -debug, um den detaillierten Klassenpfad / Arbeitsverzeichnis junit aufzurufen, mit dem du die Ergebnisse zurücksendest, wenn du immer noch nicht auflösen kannst dieses Problem.

    
ChssPly76 01.08.2009, 03:18
quelle
2

Sie müssen das JUnit-Jar nicht zum Klassenpfad hinzufügen. Wenn ant es nicht finden kann, wird der Task <junit> nicht ausgeführt.

Ich schlage vor, verschiedene Methoden zum Spezifizieren des Klassenpfads zu versuchen, wie im ant doc unter Ссылка beschrieben; speziell <classpath path="${srcdir}" /> könnte helfen.

Wenn nicht, ist der Vorschlag von ChssPly76, ant-debug über die Befehlszeile auszuführen, die beste Wahl. Sie sollten jedoch den Puffer in Ihrem Eingabeaufforderungsfenster hochfahren, da der Debugger von ant sehr ausführlich ist.

    
Spyder 01.08.2009 03:43
quelle

Tags und Links