Ich verwende Apache Ant, um JUnit-Tests zu kompilieren und auszuführen. Im Moment wird an Umgebungen gearbeitet, in denen die ant JUnit-Bibliothek als Teil von Ant installiert ist, aber nicht in anderen Umgebungen. Ich möchte das beheben. Ich habe versucht, die erforderlichen Gläser (junit-4.12.jar
und hamcrest-core-1.3.jar
, wenn ich es richtig verstehe), aber es funktioniert nicht. Der relevante Teil meiner build.xml
ist wie folgt:Das Ausführen von JUnit von Apache Ant mit enthaltener JAR-Datei führt zu "JUnitTask wurde nicht gefunden"
<property name="build.path" location="build/src"/>
<property name="build.test.path" location="build/test"/>
<property name="lib.path.rel" value="lib"/>
<property name="junit.file" value="${lib.path.rel}/junit/junit-4.12.jar"/>
<property name="hamcrest.file" value="${lib.path.rel}/junit/hamcrest-core-1.3.jar"/>
<path id="junit.class.path">
<pathelement location="${junit.file}"/>
<pathelement location="${hamcrest.file}"/>
<pathelement location="${build.path}"/>
</path>
<target name="test-compile" depends="test-clean">
<mkdir dir="${build.test.path}"/>
<javac srcdir="${test.path}"
destdir="${build.test.path}"
includeantruntime="false">
<classpath refid="junit.class.path" />
</javac>
</target>
<target name="test" depends="test-compile">
<junit>
<classpath>
<path refid="junit.class.path"/>
<pathelement location="${build.test.path}"/>
</classpath>
<batchtest>
<fileset dir="${build.test.path}">
<include name="**/*Test*"/>
</fileset>
</batchtest>
<formatter type="brief" usefile="false"/>
</junit>
</target>
Die Aufgabe test-compile
erfolgreich die Tests baut.
Die Aufgabe test
führt jedoch zu dem folgenden Fehler:
Problem: failed to create task or type junit Cause: the class org.apache.tools.ant.taskdefs.optional.junit.JUnitTask was not found.
Ich bin mit CentOS 7 mit Ant 1.9.2, und obwohl ich denke, dass es sinnvoll ist es, Benutzer zu verlangen Ant auf die neueste Version zu aktualisieren, verfügbar, Ich habe keine Kontrolle darüber, welche Betriebssysteme und Bibliotheken sie installiert haben. Als solches möchte ich das Problem nicht durch yum install something
oder whatnot lösen, sondern indem ich einen Weg finde, die JUnit-Jar-Dateien richtig zu benutzen (wenn das möglich ist). Wenn sie dann das git-Repository abrufen und die Aufgabe ausführen, funktioniert sie auf jedem Betriebssystem oder jeder Umgebung (da sie eine JAR-Datei verwenden, die sie gerade gezogen haben). Offensichtlich bedeutet dies auch, dass "nur die Gläser in die Ant lib dir legen" wird keine praktikable Lösung sein.
Vielen Dank.
Haben Sie darüber nachgedacht Maven mit der notwendigen jar herunterladen? Wenn das nicht helfen könnte: http://stackoverflow.com/questions/25628253/ant-junit-task-where-to-download-ant-junit-jar-and-where-to-put-it – Gildraths