2016-03-01 4 views
0

Я смог успешно скомпилировать и запустить этот проект с помощью ant. Но когда я пытаюсь запустить свои тестовые файлы, это дает мне странную ссылку ./lib/junit-4.11.jar не найден. Я, вероятно, делаю что-то неправильно в refid, которое я должен упомянуть в задаче junit. Пожалуйста, укажите ошибку.Тесты Junit не запускаются с использованием ant

<target name="clean"> 
    <delete dir="build"/> 
</target> 

<target name="compile"> 
    <mkdir dir="build/classes"/> 
    <javac srcdir="./src/com/twu/biblioteca/" destdir="build/classes"/> 
</target> 

<target name="jar"> 
    <mkdir dir="build/jar"/> 
    <jar destfile="build/jar/Application.jar" basedir="build/classes"> 
     <manifest> 
      <attribute name="Main-Class" value="com.twu.biblioteca.Application"/> 
     </manifest> 
    </jar> 
</target> 

<target name="run"> 
    <java jar="build/jar/Application.jar" fork="true"/> 
</target> 

<target name="junit" depends="compile"> 

    <junit printsummary="yes" haltonfailure="no"> 

     <!-- Project classpath, must include junit.jar --> 
     <classpath refid="./lib/junit-4.11.jar" /> 

     <!-- test class --> 
     <classpath location="./test/BooksController" /> 

     <test name="com.twu.biblioteca.BooksControllerTest" 
       haltonfailure="no" todir="./report"> 
      <formatter type="plain" /> 
      <formatter type="xml" /> 
     </test> 

    </junit> 
</target> 

ответ

0

Проблема с вашим JUnit элементы пути к классам. Атрибут refid позволяет вам ссылаться на предопределенную ссылку, и муравей уведомляет вас о том, что такой ссылки нет. Кроме того, вы должны иметь только один элемент classpath в рамках задачи junit (он может работать с несколькими, но документация поддерживает только одну).

Удалить эти элементы пути к классам и заменить их

<classpath> 
    <pathelement location="lib/junit-4.11.jar"/> 
    <pathelement location="test/BooksController"/> 
</classpath> 

и он должен работать. Здесь мы создаем путь к классам, добавляя junit jar к пути, а затем каталог, содержащий ваши тесты. Вам, вероятно, придется добавить к этому свои основные классы, а еще pathelement дает свое местоположение.

См. the ant documentation для получения дополнительной информации по этим дорогим конструкциям.

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