首页 > 解决方案 > 将 JUnit 与 Jenkins 和 Ant 项目一起使用

问题描述

我正在通过 ant 在 Jenkins 上运行 Junit 测试。我可以在 Jenkins 中收到构建成功消息,但 JUnit 结果是错误的。

java.lang.ClassNotFoundException: JUnitTest

在 java.lang.ClassLoader.loadClass(ClassLoader.java:351)

在 java.lang.Class.forName0(本机方法)

在 java.lang.Class.forName(Class.java:348)

这是我的 build.xml。

<?xml version="1.0"?>
<project name="testProject" default="main" basedir=".">
   <target name="init">
      <property name="src" location="src" />
      <property name="bin" location="bin" />
      <property name="lib" location="WebContent/WEB-INF/lib" />
      <property name="war.name" location="testProject.war" />
      <property name="web" location="WebContent" />

      <mkdir dir="${bin}" />

      <tstamp>
         <format property="DSTAMP" pattern="yyyyHHdd" />
         <format property="TSTAMP" pattern="HHmm" />
      </tstamp>
   </target>

   <target name="compile" depends="init"> 
          <fileset dir="WebContent/WEB-INF/lib" includes="*.jar" />
      </path>
      
      <javac srcdir="src/test" destdir="${bin}" debug="on" includeantruntime="false">
            <classpath refid="junit.jar"/>
            <include name="*.java"/>
        </javac>
      
      <javac srcdir="src/testProject" destdir="${bin}" debug="on" includeantruntime="false">
            <include name="*.java"/>
        </javac>
   </target>
   
   <target name="junit4" depends="compile">
       <delete dir="report" />
       <mkdir dir="report" />
       
       <junit printsummary="on" fork="false" haltonfailure="false">
            <classpath refid="junit.jar"/>
            <formatter type="xml"/>
          
         <batchtest todir="report">
              <fileset dir="src/test" includes="**/JUnit*.java" />
            </batchtest>
       </junit>
     
       <junitreport todir="report">
            <fileset dir="report" includes="TEST-*.xml" />
            <report format="frames" todir="report"/>
       </junitreport>
   </target>
   
   <target name="main" depends="clean,war">
      <java classpath="${bin}" classname="testProject.HelloWorld">
      </java>
   </target>

   <target name="war" depends="compile,junit4">
      <war destfile="${bin}/${DSTAMP}.war" webxml="${web}/WEB-INF/web.xml">
         <fileset dir="${web}">
            <include name="**/*.*" />
            <exclude name="WEB-INF/web.xml" />
         </fileset>
      </war>
   </target>

   <target name="clean">
      <delete dir="${bin}" /> 
   </target>

</project>

我已经审查了其他类似的问题,但没有奏效。为什么找不到类?

标签: jenkinsjunitant

解决方案


推荐阅读