2011-12-22 102 views
4

如何讓Jenkins在用Ant構建時發現JUnit?Jenkins找不到JUnit(Netbeans + Git + Ant + JUnit + Jenkins)

閱讀答案herehere我相信我有一個類路徑問題,但我無法解決它。在我的Netbeans項目中,我有一個在Netbeans中運行良好的JUnit測試。我把這個項目推到了我的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目錄(Windows 7 64位)。我的NetBeans項目的文件結構是這樣的:

enter image description here

我已經試過這裏討論通過Ant編輯類路徑,但我不能得到它的工作的權利。

這是我第一次和Ant,JUnit和Jenkins一起去,但我認爲我真的很接近使用Netbeans和Git正確工作。我會很樂意提供更多信息。已經打了3天現在,所以任何援助將不勝感激。

回答

0

嘗試提供外商投資企業的完整路徑相對於當前目錄 所以考慮烏拉圭回合的測試結果是在nbproject,和當前工作目錄是demo

在發佈的JUnit結果 寫

nbproject/*.xml 
1

我知道是一些遲到的答覆,但現在我們有一個解決這個問題...

我有同樣的問題,我有項目構建螞蟻,我解決了包括到build.xml文件路徑的junit.jar & hamcrest-core.jar添加

  1. 下載的junit.jar從JUnit的存儲庫& hamcrest-core.jar添加在 混帳:https://github.com/junit-team/junit/wiki/Download-and-Install

  2. 在某個地方的文件粘貼到你的詹金斯/哈德森服務器

  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

+1解決我有問題。然而,快速的問題對於javac元素,你把它放到build.xml還是nbproject/build-impl.xml中?也爲destdir是建立/類?任何幫助極大地讚賞 – simgineer 2013-03-06 00:18:48

+0

build.xml是螞蟻文件jenkins我使用eclipse然後我生成這個文件並上傳到svn倉庫,destdir是放置.class文件的目錄 – Grubhart 2013-03-11 19:04:19

0

你可以在NetBeans中處理這個,而不用自己搞亂Ant文件。

你應該

  • 下載JUnit和Hamcrest JAR文件,並將它們存儲在您的應用程序的lib /目錄
  • 在NetBeans中,用鼠標右鍵單擊您的項目,選擇屬性然後圖書館在左邊。切換到編譯測試選項卡,刪除系統範圍的Junit庫,並使用添加JAR /文件夾按鈕添加lib /目錄中的庫。

確保您有相關的螞蟻文件(添加[項目] /build.xml[項目] /nbproject/build-impl.xml你VCS。

然後就告訴詹金斯在蟻文件(路徑[項目] /build.xml在回購),和Ant目標來運行(Java SE應用程序通常是「試驗瓶」)。

該解決方案還如果你不能(或不想)在其上存儲單獨的文件,它的優點是它可以工作CI服務器手動。它有一個缺點,就是你用你的應用程序發佈庫,而不是使用已經在服務器上可用的系統範圍的庫。