Дженкинс не может найти JUnit (Netbeans + Git + Ant + JUnit + Jenkins) - PullRequest
4 голосов
/ 22 декабря 2011

Как заставить Дженкинса найти JUnit при сборке с помощью Ant?

Чтение ответов здесь и здесь Я считаю, что у меня есть проблема с classpath, но я не могу ее решить. В моем проекте Netbeans у меня есть один тест JUnit, который отлично работает в Netbeans. Я помещаю проект в репозиторий Git, и Дженкинс видит изменения и создает проект, но я получаю кучу ошибок (ниже), потому что JUnit не найден.

-do-compile-test:
    [javac] Compiling 1 source file to C:\Jenkins\jobs\demo\workspace\demo\build\test\classes
    [javac] C:\Jenkins\jobs\demo\workspace\demo\test\MainTest.java:6: package org.junit does not exist
    [javac] import org.junit.After;
    [javac]                 ^
    [javac] C:\Jenkins\jobs\demo\workspace\demo\test\MainTest.java:7: package org.junit does not exist
    [javac] import org.junit.AfterClass;
    [javac]  

           ^

JUnit находится в моем каталоге %ANT_HOME%\lib (64-разрядная версия Windows 7). Структура файла для моего проекта Netbeans выглядит следующим образом:

enter image description here

Я пытался отредактировать путь к классу через Ant, как описано здесь, но не могу заставить его работать правильно.

Это мой первый опыт работы с Ant, JUnit и Jenkins, но я думаю, что я действительно близок к тому, чтобы все правильно работало с Netbeans и Git. Я с удовольствием предоставлю больше информации. Я боролся с этим уже 3 дня, поэтому любая помощь будет принята с благодарностью.

Ответы [ 3 ]

1 голос
/ 26 февраля 2013

Я знаю, что уже поздно для ответа, но теперь у нас есть решение этой проблемы ...

У меня та же проблема, у меня есть сборка проекта с помощью ant, я решил включить ее в build.xmlпути к junit.jar & hamcrest-core.jar

  1. Загрузить файл junit.jar & hamcrest-core.jar из репозитория junit в git: https://github.com/junit-team/junit/wiki/Download-and-Install

  2. вставьте файлы в любое место на вашем сервере jenkins / hudson

  3. отредактируйте файл build.xml и добавьте следующие строки:

    <property name="JUNIT_HOME" value="path_to_folder_contain_junit_&_hamcrest_jars"/>
    <path id="JUnit 4.libraryclasspath">
        <pathelement location="${JUNIT_HOME}/junit.jar"/>
        <pathelement location="${JUNIT_HOME}/hamcrest-core.jar"/>
    </path>
    <path id="projectname.classpath">
        <pathelement location="your_bin_folder"/>
        <path refid="JUnit 4.libraryclasspath"/>
    </path>
    
    <!--in your javac task include the classpath -->
    <javac debug="true" debuglevel="${debuglevel}" destdir="your_bin_folder" source="${source}" target="${target}">
        <src path="src"/>
        <classpath refid="projectname.classpath"/>
    </javac>
    
  4. Зафиксируйте файл на svn, git, на любом сервере.

  5. Попробуйте сборку.теперь junit находится в вашем классе, и jenkins может завершить сборку

0 голосов
/ 10 июня 2015

Вы можете справиться с этим в NetBeans, не связываясь с файлами Ant самостоятельно.

Вы должны

  • Загрузите JAR-файлы Junit и Hamcrest и сохраните их в каталоге lib / вашего приложения
  • В NetBeans щелкните правой кнопкой мыши свой проект, выберите Свойства , а затем Библиотеки слева. Перейдите на вкладку Compile Tests , удалите общесистемные библиотеки Junit и добавьте их из своего каталога lib /, используя кнопку Добавить JAR / Папка .

Убедитесь, что вы добавили соответствующие файлы Ant ( [проект] /build.xml и [проект] /nbproject/build-impl.xml в VCS.

Затем просто скажите Дженкинсу, где находится файл ant (путь к [project] /build.xml в вашем репо), и какие целевые объекты Ant нужно запустить (обычно «тестовый jar» для Java SE). приложение).

Преимущество этого решения в том, что оно работает, если вы не можете (или не хотите) сохранять отдельные файлы на сервере CI вручную. Недостатком является то, что вы поставляете библиотеки вместе с вашим приложением вместо использования общесистемных библиотек, которые уже могут быть доступны на сервере.

0 голосов
/ 22 декабря 2011

попробуйте указать полный путь к файлу относительно текущего каталога поэтому, учитывая, что ваши результаты теста находятся в nbproject, а текущий рабочий каталог demo

Под публикацией результатов JUnit написать

nbproject/*.xml
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...