2015-07-27 3 views
0

возможно, это очень простой вопрос, но я новичок в java, поэтому, пожалуйста, несите меня. Я пытаюсь запустить java-задачу в ant, и я хочу знать, есть ли способ получить все имена классов внутри папки в ant?Запуск нескольких тестов JUnit с Ant

Это файл build.xml

<project default='run-test' basedir="."> 
    <property name="src" value="src"/> 
    <property name="test" value="test"/> 
    <property name="build" value="build"/> 
    <property name="build-classes" value="build/classes"/> 
    <property name="build-test-classes" value="build/test/classes"/> 
    <property name="junit4" value="/usr/share/java/junit4.jar"/> 

    <target name="init"> 
    <mkdir dir="${build-classes}"/> 
    <mkdir dir="${build-test-classes}"/> 
    </target> 

    <target name="compile" depends="init"> 
    <javac includeantruntime="false" 
     srcdir="${src}" 
     destdir="${build-classes}"/> 
    </target> 

    <target name="compile-test" depends="compile"> 
    <javac includeantruntime="false" 
     classpath="${junit4}:${build-classes}" 
     srcdir="${test}" 
     destdir="${build-test-classes}"/> 
    </target> 

    <target name="run-test" depends="compile-test"> 
    <java classpath="${junit4}:${build-classes}:${build-test-classes}" 
     classname="org.junit.runner.JUnitCore" 
     args="myclass.MyClassTest"/> <---This is my problem 
    </target> 

    <target name="clean"> 
    <delete dir="${build}"/> 
    </target> 
</project> 

я должен вручную указать имя класса в рассуждениях. Есть ли способ указать только папку, и все имена классов будут рассмотрены в качестве аргументов для javatask автоматически?

+0

Я не могу придумать способ. Лучший вариант - это, вероятно, написать пользовательскую задачу Ant. –

ответ

1

Ant корабли с задачей для running JUnit tests.

В run-test цели в вашем примере, замените <java> задачу следующим:

<junit> 
    <formatter type="plain" usefile="false"/> 
    <classpath> 
    <pathelement location="${junit4}"/> 
    <pathelement location="${build-classes}"/> 
    <pathelement location="${build-test-classes}"/> 
    </classpath> 
    <batchtest> 
    <fileset dir="${build-test-classes}"> 
     <include name="**/*.class"/> 
    </fileset> 
    </batchtest> 
</junit> 
+0

можно ли это сделать без использования задачи JUnit ant? –

+0

Это можно сделать, дублируя то, что уже делает задача ''. Исходный код Apache Ant покажет, что делает задача. –

+0

hmm, у вас есть точка –

Смежные вопросы