2016-04-30 4 views
0

Новое в Ant, не знаю, что я делаю. Я предполагаю, что я не правильно установил путь класса JUnit. Я вижу, что есть много подобных вопросов, таких как этот, хотя ни один из предложений не сработал для меня. Пожалуйста помоги!JUnit with Ant, еще один java.lang.ClassNotFoundException

Моя структура проекта: (я подозреваю, что мой структура реж серьезно испортили)

MyProject/ 
    bin/main/ 
     project.class 
     test1.class 
     test2.class 
     test3.class 
    build/main/project 
     Project.class 
    build/test/main 
     test1.class 
     test2.class 
     test3.class 
    build/test/project 
     test1.class 
     test2.class 
     test3.class 
    lib/ 
     junit-4.11.jar 
     hamcrest-all-1.3.jar 
    src/main/java/ 
     project.java 
    src/test/java/ 
     test1.java 
     test2.java 
     test3.java 
    build.xml 

Мой build.xml

<project name="junit-example"> 
    <property name="main.build.dir" value="build/main"/> 
    <property name="main.src.dir" value="src/main/java"/> 
    <property name="test.build.dir" value="build/test"/> 
    <property name="test.src.dir" value="src/test/java"/> 

    <path id="classpath.test"> 
    <pathelement location="lib/junit-4.11.jar"/> 
    <pathelement location="lib/hamcrest-core-1.3.jar"/> 
    <pathelement location="${main.build.dir}"/> 
    </path> 

    <target name="compile"> 
    <mkdir dir="${main.build.dir}"/> 
    <javac srcdir="${main.src.dir}" destdir="${main.build.dir}" includeantruntime="false"/> 
    </target> 

    <target name="test-compile" depends="compile"> 
    <mkdir dir="${test.build.dir}"/> 
    <javac srcdir="${test.src.dir}" destdir="${test.build.dir}" includeantruntime="false"> 
     <classpath refid="classpath.test"/> 
    </javac> 
    </target> 

    <target name="testAll" depends="test-compile"> 
    <junit printsummary="on" haltonfailure="yes" fork="no"> 
     <classpath> 
      <path refid="classpath.test"/> 
      <pathelement location="${test.build.dir}"/> 
     </classpath> 
     <formatter type="brief" usefile="false" /> 
     <batchtest> 
      <fileset dir="${test.src.dir}" includes="**/*Test.java" /> 
     </batchtest> 
    </junit> 
    </target> 
</project> 

ответ

2

Вы определили batchtest, как

<batchtest> 
    <fileset dir="${test.src.dir}" includes="**/*Test.java" /> 
</batchtest> 

Еще ваши файлы в ${test.src.dir}:

src/test/java/ 
    test1.java 
    test2.java 
    test3.java 

Попробуйте изменить batchtest к

<batchtest> 
    <fileset dir="${test.src.dir}" includes="**/*test?.java" /> 
</batchtest> 
+0

Спасибо! Однако теперь он успешно работает, но не запускает тесты вообще, вы можете понять, почему? – Katherine

+0

Как вы выполняете тесты с 'ant'? – rjp

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