Jenkins与Junit整合实践

1.环境

windows10 专业版
Jenkins 2.7
apache-ant-1.9.6
JDK1.8

2.实验过程
2.1Apache Ant 1.9.6安装与配置

我这里安装的是1.10.10,下载地址:http://ant.apache.org/bindownload.cgi,将ant解压好,复制ant文件夹路径,例如我的ant放在D:\software\apache-ant-1.10.10。
在这里插入图片描述
于是配置环境变量:此电脑->系统属性->高级系统设置->环境变量->新建
添加环境变量:ANT_HOME,值就是ant所在路径,例如D:\software\apache-ant-1.10.10
在这里插入图片描述
在PATH中添加:%ANT_HOME%\bin
然后打开CMD,输入ant -v,回车,出现下面的文字:
Buildfile: build.xml does not exist!
Build failed
在这里插入图片描述
安装成功!

2.2项目整体结构

在这里插入图片描述
com.java.src下面放源码 MessageUtil.java
com.java.test目录下放JUnit测试文件 TestMessageUtil.java
build.xml文件放在根目录下,即位于AntJunit-v1.0目录下,和src位于同一级别。

2.3项目源码
2.3.1MessageUtil.java
package com.java.src;

public class MessageUtil {
    private String message;
    //Constructor
     //@param message to be printed
     public MessageUtil(String message){
     this.message = message; 
      }
      // prints the message
       public String printMessage(){
          System.out.println(message);
       return message;
       }   
      // add "Hi!" to the message
      public String salutationMessage(){
        message = "Hi!" + message;
         System.out.println(message);
          return message;
        }   
 }
2.3.2TestMessageUtil.java
package com.java.test;

import static org.junit.Assert.*;
import org.junit.Test;
import com.java.src.MessageUtil;

public class TestMessageUtil {
     String message = "Robert";   
     MessageUtil messageUtil = new MessageUtil(message);
     @Test
     public void testPrintMessage() { 
       System.out.println("Inside testPrintMessage()");     
          assertTrue(message.equals(messageUtil.printMessage()));
       }
     @Test
     public void testSalutationMessage() {
       System.out.println("Inside testSalutationMessage()");
        message = "Hi!" + "Robert";
         assertTrue(message.equals(messageUtil.salutationMessage()));
      }
 }
2.3.3build.xml
<?xml version="1.0" encoding="utf-8"?>
 <project name="test" default="test" basedir=".">
  
        <!--配置基本属性-->
        <property name="src" value="src"/>
         <property name="build" value="build"/>
        <property name="lib" value="lib" />
       <property name="dist" value="dist"/>
        <property name="classpath" location="${build}"/>
      
       <!--配置测试报告的属性-->
        <property name="report"   value="report"/>
        <property name="report.xml"  value="${report}/junit/xml"/>
        <property name="report.html" value="${report}/junit/html"/>
        <!--配置运行时classpath-->
       <path id="classpath.run">
              <pathelement path="${classpath}"/>
              <fileset dir="${lib}">
                     <include name="*.jar"/>
              </fileset>
        </path>
  
       <!--配置测试时classpath-->
        <path id="classpath.test">
              <path refid="classpath.run"/>
               <path location=""/>
        </path>
       
        <!--任务初始化-->
        <target name="init" >
              <tstamp/>
              <delete dir="${build}"/>
               <delete dir="${report}"/>
              <delete dir="${dist}"/>
               <mkdir dir="${build}"/>
               <mkdir dir="${lib}"/>
               <mkdir dir="${dist}"/>
               <mkdir dir="${report}"/>
        </target>
       
        <!--配置编译任务-->
        <target name="compile" depends="init">
              <javac srcdir="${src}" destdir="${build}">
               <classpath refid="classpath.run" />
               </javac>
      </target>
        <!--配置运行任务-->
       <target name="run" depends="compile">
         <java classname="com.test.TestCalculator">
              <classpath>
                      <path refid="classpath.run"/>
               </classpath>
          </java>
        </target>
       
       <!--配置JUnit测试,打印测试结果-->
        <target name="test" depends="compile">
               <mkdir dir="${report.xml}"/>
               <mkdir dir="${report.html}"/>
               <junit printsummary="yes" haltonfailure="no">
                     <classpath refid="classpath.run"/>
                     <formatter type="xml"/>
                     <batchtest fork="yes" todir="${report.xml}">
                         <fileset dir="${src}" includes="**/Test*.java"/>
                      </batchtest>
               </junit>
              <junitreport todir="${report.html}">
                      <fileset dir="${report.xml}">
                             <include name="*.xml"/>
                      </fileset>
                      <report format="frames" todir="${report.html}"/>
               </junitreport>
        </target>
</project>
2.4必要的环境配置

将junit-4.10.jar 复制到%ANT_HOME%\lib目录下。例如,我需复制到D:\software\apache-ant-1.10.10\lib下。这一步很有必要,否则正式运行会报错。
在这里插入图片描述

2.5配置Jenkins
(1)新建一个自由风格的job,名字为AntJunit-V1.0。

在这里插入图片描述

(2)源码管理:

选择No。利用SVN或git对源码进行管理时,Jenkins总是会把代码拷贝一份到自己的工作空间,然后对备份进行操作,因此本demo忽略源码管理,直接将代码拷贝到Jenkins工作区。
在这里插入图片描述

(3)增加构建步骤:

选择Invoke Ant。Targets的名字test来自build.xml中的target名字test(test在build.xml中也是默认执行的target)。
另外,这里的构建可以用windows脚本执行。二者效果完全一样。
在这里插入图片描述

(4)构建后操作:

选择Publish JUnit test result report。测试报告xml填:report/junit/html/TESTS-TestSuites.xml
在这里插入图片描述

(5)点击「保存」。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击中间的「最新测试结果」,查看详情:
在这里插入图片描述
如果构建时遇到以下问题:
在这里插入图片描述
解决办法:
1.进入Jenkins,系统设置-全局配置,选择ant,名字为:ant_home,下面写Ant安装路径
在这里插入图片描述
2.项目配置时选择ANT_HOME
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值