Jira与Jenkins集成:自动化构建与跟踪


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。

jira与jenkins_xml


于是配置环境变量:此电脑->系统属性->高级系统设置->环境变量->新建

添加环境变量:ANT_HOME,值就是ant所在路径,例如D:\software\apache-ant-1.10.10

jira与jenkins_xml_02


在PATH中添加:%ANT_HOME%\bin 然后打开CMD,输入ant -v,回车,出现下面的文字:

Buildfile: build.xml does not exist!

Build failed

jira与jenkins_html_03


安装成功!

2.2项目整体结构

jira与jenkins_html_04


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;
        }   
 }
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
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()));
      }
 }
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
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>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
2.4必要的环境配置

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

jira与jenkins_jira与jenkins_05

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

jira与jenkins_jira与jenkins_06

(2)源码管理:

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

jira与jenkins_jira与jenkins_07

(3)增加构建步骤:

选择Invoke Ant。Targets的名字test来自build.xml中的target名字test(test在build.xml中也是默认执行的target)。

另外,这里的构建可以用windows脚本执行。二者效果完全一样。

jira与jenkins_html_08

(4)构建后操作:

选择Publish JUnit test result report。测试报告xml填:report/junit/html/TESTS-TestSuites.xml

jira与jenkins_html_09

(5)点击「保存」。

jira与jenkins_html_10


jira与jenkins_jira与jenkins_11


jira与jenkins_java_12


点击中间的「最新测试结果」,查看详情:

jira与jenkins_html_13


如果构建时遇到以下问题:

jira与jenkins_html_14


解决办法:

1.进入Jenkins,系统设置-全局配置,选择ant,名字为:ant_home,下面写Ant安装路径

jira与jenkins_xml_15


2.项目配置时选择ANT_HOME

jira与jenkins_html_16


QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空