Почему мои тесты не выполняются при переходе с maven2 на buildr?

StackOverflow https://stackoverflow.com/questions/1165752

Вопрос

У меня есть простой java-проект maven2 (система ретрансляции JMS).После того, как мы выпустили первую версию, мы обнаружили, что потратили больше времени на настройку maven, чем на собственно кодирование.

Для следующего выпуска мы хотели очистить процесс сборки, и кто-то предложил перейти на builder.Так что мне было поручено сделать именно это.

Я настраиваю buildr (1.3.4) в соответствии с документацией на их веб-сайте.И затем из корня проекта я ввел команду buildr, а затем сообщил buildr создать файл сборки на основе моего pom.xml.Это нормально обработало и скомпилировало весь код.Все было подливкой, пока buildr не начал запускать тесты.Вот результат:

Test framework error: taskdef class org.apache.tools.ant.taskdefs.optional.junit.JUnitTask cannot be found

Очевидно, что указанного класса нет в моем classpath .Однако в документации buildr говорится, что включены все необходимые элементы, необходимые для базового тестирования.В их документации не сказано, что им нужны какие-либо конкретные библиотеки для ant или версия ant.Хотя у меня установлен ant 1.7.0 (однако он не включен в мой classpath).

Кто-нибудь видел это раньше?


Обновить

Я нашел печально известный ant-необязательный jar в репозитории maven.Включая это в мой тест.с помощью опций проблема не была решена.

Выполнение команды buildr с помощью --trace дает эту дополнительную информацию...

Tests failed!
/pathtoruby/buildr-1.3.4/lib/buildr/core/test.rb:455:in `run_tests'
/pathtoruby/buildr-1.3.4/lib/buildr/core/test.rb:199:in `initialize'
Это было полезно?

Решение

Нашел проблему...По-видимому, есть ant-junit.jar это необходимо, но по какой-то причине в моем локальном репозитории оно принадлежало root, а не моей локальной учетной записи пользователя (система OSX).Так что это было недоступно для buildr.Я удалил элементы из своего локального репозитория и повторно запустил buildr (он загрузил необходимые элементы).


Обновить

Также это вызвало несколько других проблем.Похоже, что несколько других элементов в моем локальном репозитории имели странные разрешения.В итоге я просто заархивировал свой репозиторий и позволил maven восстановить его.Это решило все мои проблемы.Теперь у меня есть хороший файл сборки, который состоит из 25 строк кода по сравнению с моим предыдущим pom.xml файл, который состоял из более чем 100 строк.

Другие советы

Вы получаете эту ошибку, потому что JUnitTask отсутствует в classpath .Я не очень знаком с Buildr, поэтому не могу сказать, требуется ли вам указывать JUnit jars или нет, но если Buildr использует system classpath, попробуйте добавить к нему JUnit и посмотрите, что произойдет.

Как только вы подтвердите, что ваши сборки будут выполняться с использованием JUnit, взломанного в classpath, вы можете попробовать изменять свою конфигурацию, пока она не будет работать так, как вы ожидали, или оставить ее как есть.

Можете ли вы разместить ссылку на соответствующую часть документации?Я не видел ничего (при моем очень кратком ознакомлении с сайтом), что указывало бы, что необходимые элементы включены.

Возможно ли, что вы скачали не все драгоценные камни?Если вы запустите "gem update --system" для обновления Ruby, затем "gem update buildr", вы можете убедиться, что все необходимые зависимости были установлены.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top