Ich automatisiere meine JUnit-Tests in meinem Ant-Build. Allerdings besteht mein einfacher Test nur, wenn er von der IDE und der Kommandozeile aus ausgeführt wird, schlägt aber mit Ant's <junit>
Aufgabe. Wenn ich sie über die Befehlszeile ausführe (ich verwende technisch gesehen das Ant <exec>
Aufgabe) ist das Ergebnis:
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 die <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
Der Inhalt von MY_TEMP
sind junit-4.10.jar
, SimpleTest.java
y build.xml
.
Ich habe kopiert junit-4.10.jar
zum %ANT_HOME%\lib
Ordner, wie von der Dokumentation der Ant-Junit-Aufgaben . Es hatte bereits beide ant-junit.jar
y ant-junit4.jar
.
Meine Version von Java ist 1.6.0_26.
Mein Test ist:
// YES, this is the default package
import org.junit.*;
public class SimpleTest {
@Test
public void mySimpleTest(){
Assert.assertEquals( 2, 1 + 1 );
}
}
Und meine Ant-Datei (build.xml) lautet:
<?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>