Jenkins ANT+JUNIT实例(学习笔记二十七)-阿里云开发者社区

开发者社区> 开发与运维> 正文

Jenkins ANT+JUNIT实例(学习笔记二十七)

简介: 转载:http://www.cnblogs.com/helloIT/p/5761740.html 1.环境   windows10 专业版   Jenkins 2.7   apache-ant-1.9.6   JDK1.8.0_20 2.整体思路   jdk:支持ant脚本中的编译、测试等target。

转载:http://www.cnblogs.com/helloIT/p/5761740.html

1.环境

  windows10 专业版

  Jenkins 2.7

  apache-ant-1.9.6

  JDK1.8.0_20

2.整体思路

  jdk:支持ant脚本中的编译、测试等target。

  ant脚本:负责java代码的编译、JUnit。

  Jenkins:调度触发ant脚本的执行。

img_4d515aedad6a2e45e0c3abaa09a2c96f.png


3.开始练兵

 3.1 项目整体结构

img_dac5a611985d810ef5f24a66743560c9.png

com.java.src下面放源码  MessageUtil.java

com.java.test目录下放JUnit测试文件 TestMessageUtil.java

build.xml文件放在根目录下,即位于AntJunit-v1.0目录下,和src位于同一级别。

3.2 项目源码

1package com.java.src; 2 3publicclass MessageUtil { 4private String message; 5 6//Constructor 7//@param message to be printed 8public MessageUtil(String message){ 9this.message = message; 10      }1112// prints the message13public String printMessage(){14          System.out.println(message);15return message;16      }  1718// add "Hi!" to the message19public String salutationMessage(){20message = "Hi!" + message;21          System.out.println(message);22return message;23      }  24}

1package com.java.test; 2 3 4 5 6importstaticorg.junit.Assert.*; 7 8import org.junit.Test; 910import com.java.src.MessageUtil;1112publicclass TestMessageUtil {13String message = "Robert";  14MessageUtil messageUtil =new MessageUtil(message);1516      @Test17publicvoid testPrintMessage() { 18System.out.println("Inside testPrintMessage()");    19          assertTrue(message.equals(messageUtil.printMessage()));20      }2122      @Test23publicvoid testSalutationMessage() {24System.out.println("Inside testSalutationMessage()");25message = "Hi!" + "Robert";26          assertTrue(message.equals(messageUtil.salutationMessage()));27      }28}

1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778

3.3 必要的环境配置

junit-4.10.jar 复制到%ANT_HOME%\lib目录下。例如,我需复制到D:\SoftInstall\apache-ant-1.9.6\lib下。

这一步很有必要,否则正式运行会报错。

3.4 配置Jenkins

新建一个自由风格的job,名字为AntJunit-V1.0。

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

img_c2376e7a882621812d09f68508a887a8.png


增加构建步骤:选择Invoke Ant。Targets的名字test来自build.xml中的target名字test(test在build.xml中也是默认执行的target)。

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

img_3a1500db34799c49390d448b4afc1216.png


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

img_0da1288171e6353f6247e2040f576cd4.png

点击「保存」。

4.构建结果

img_3b9b5a4fa076c166a44aeed99f54c660.png

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

img_3c2f5feefe4b24f014c8c665287f4b9a.png

5.总结

 ①完全可以在ant环境下调试好结果再放到jenkins工作空间。因为起实质作用的是ant,jenkins仅仅是调度。ant和jenkins天然有着密切的联系。

 ②这个demo中ant脚本模拟的是手动编译、测试java代码的过程。ant典型应用还有对Java程序的打包、部署等。当然,ant还有更多应用,有兴趣的童鞋可以搜索ant学习。

6.致谢

本文参考了参考一 和 参考二 ,在此对原作者表示感谢。

7.在ubuntu14.04下遇到的问题(2016.8.16,jenkins版本为2.7.2)

上述作业在windows下没有任何问题。但是移植到ubuntu14.04虽然能够构建,但查看详情发现报错:Error Message:org/hamcrest/SelfDescribing 。

img_c045ca5a897bff2078b203ef5f7681ac.png

原来是由于Junit4.10.jar中不包含hamcrest-core-1.3.jar(参考这里)。

  将hamcrest-core-1.3.jar添加到${JENKINS_HOME}/workspace/AntJunit/lib目录下,重新构建,成功!

img_ed05f1f57faf93e68c7a979c995e4aef.png
img_9605db292fdb47636d2697c8846d2585.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章