JUnit-test schlägt fehl in Ant mit `<junit>` Aufgabe, sondern geht mit `<exec>`?
Ich bin die Automatisierung von meinen JUnit-tests in mein Ant-build. Aber, meine einfache test geht erst beim starten aus der IDE und commandline, scheitert jedoch mit Ant - <junit>
Aufgabe. Wenn ich es aus der Kommandozeile (ich bin technisch mit der Ant <exec>
Aufgabe) das Ergebnis ist:
clean:
compile_tests:
[javac] Compiling 2 source files to C:\MY_TEMP
junit_exec:
[exec] JUnit version 4.10
[exec] .
[exec] Time: 0.004
[exec]
[exec] OK (1 test)
[exec]
BUILD SUCCESSFUL
Total time: 1 second
aber wenn ich den <junit>
Aufgabe:
Buildfile: C:\MY_TEMP\build.xml
clean:
compile_tests:
[javac] Compiling 2 source files to C:\MY_TEMP
junit_ant:
[echo] junit_ant started
[junit] Test SimpleTest FAILED
BUILD SUCCESSFUL
Total time: 0 seconds
Den Inhalt MY_TEMP
sind junit-4.10.jar
, SimpleTest.java
, und build.xml
.
Habe ich kopiert junit-4.10.jar
zu den %ANT_HOME%\lib
Ordner wie schlagen von der Ant junit-task-Dokumentation. Es hatte schon beide ant-junit.jar
und ant-junit4.jar
.
Meine Java-version 1.6.0_26.
Mein test:
//YES, this is the default package
import org.junit.*;
public class SimpleTest {
@Test
public void mySimpleTest(){
Assert.assertEquals( 2, 1 + 1 );
}
}
Und mein Ant-file - (build.xml ), ist:
<?xml version="1.0"?>
<project name="regression_tests" basedir=".">
<target name="clean">
<delete>
<fileset dir="." includes="*.class" />
</delete>
</target>
<target name="compile_tests" depends="clean">
<javac srcdir="." destdir="." source="1.6" target="1.6" includeantruntime="false" >
<classpath>
<pathelement location="./junit-4.10.jar" />
</classpath>
</javac>
</target>
<target name="junit_ant" depends="compile_tests" >
<echo message="junit_ant started" />
<junit>
<test name="SimpleTest" />
</junit>
</target>
<target name="junit_exec" depends="compile_tests">
<exec executable="java" dir="." >
<arg value="-classpath" />
<arg value=".;junit-4.10.jar" />
<arg value="org.junit.runner.JUnitCore" />
<arg value="SimpleTest" />
</exec>
</target>
</project>
- Was ist der test-Fehler?
- Wie würde ich das herausfinden? Auch mit der
-v
option gegeben Ant es nicht alles drucken über das scheitern. Ausgehend von den test selbst, die nicht Versagen können, ich denke, ich muss etwas fehlen Konfiguration-Weise. - Blick in den Prüfbericht?
- Wo würde man finden, dass? Ich gehe davon aus, dass es eine option wäre aktiviert werden? Ich habe versucht, sowohl
enableTestListenerEvents="true"
undlogfailedtests="yes"
. Ich bin es gewohnt, Maven die surefire-reports. - Nevermind, gefunden, wie zu machen Berichte von hier: junit.sourceforge.net/doc/faq/faq.htm#running_6
- Sie würde übergeben müssen es in Ihrem
junit_exec
Ziel, aber ew-es gibt eine junit task, der wickelt alles für Sie. - Edit-Ah, ja, mich zu schlagen 🙂 - Es war
java.lang.ClassNotFoundException: SimpleTest
also ich habe<classpath location="." />
zu den<junit>
tag. Wenn Sie buchen möchten, die als eine Antwort wäre ich glücklich, es zu akzeptieren! 🙂 Wenn alles, was das wirkliche problem scheint zu sein, dass ich nicht sehen, die Fehler, da es schien ziemlich offensichtlich, sobald ich es Tat. - Es ist immer offensichtlich, wenn Sie es sehen 😉 Aber ja, wenn es in eine Richtung funktioniert und nicht die anderen, es ist fast immer classpath-Verwandte :/ Ah, Java 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn ein test erfolgreich verläuft ein Weg, und schlägt ein anderes, es ist wahrscheinlich etwas classpath-Zusammenhang, wie es nicht finden können, ein test-Klasse, eine Klasse unter test, oder eine Bibliothek.
Die test-Ausgabe sollte helfen, zu klären, ob dies ist, was das Problem ist.
Speziell ich editierte meine
junit_ant
Aufgabe:Welche dann zeigte Sie mir, dass das scheitern war
java.lang.ClassNotFoundException: SimpleTest
so habe ich nur noch<classpath location="." />
zu den<junit>
Aufgabe und dann funktionierte es.Hinzufügen dieser Zeile für mehr info: