2011-12-22 93 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服务器手动。它有一个缺点,就是你用你的应用程序发布库,而不是使用已经在服务器上可用的系统范围的库。