Jenkins持续集成环境搭建参考教程

写在前面

搭建测试环境花了不少时间也走了不少弯路,虽然现在也谈不上精通,但总算攒了不少经验教训和人品。在此就把我掌握的一些相关知识共享给大家,希望大家在进行相同工作时能少费一点功夫,留着干些更重要的事~!

参考资料

http://www.eoeandroid.com/thread-271570-1-1.html

http://developer.51cto.com/art/201111/304118.htm

http://blog.sina.com.cn/s/blog_6324a89501013h84.html

http://blog.csdn.net/mentgmery1/article/details/8671759

(第三个网址内容与第一个类似,与第一个冲突的地方,以第一个为准)

搭建jenkins环境

1、  配置java环境和androidSDK(记住SDK的位置)

2、  在Eclipse中搭建android开发环境,并用AndroidSDK Manager下载所有版本API

3、  打开http://jenkins-ci.org/,下载jenkins.war。

在保存jenkins.war的目录下,执行java –jarjenkins.war (如果打开失败说明8080端口被tomcat之类的占用,加后缀--httpPort=8081注意这里是两个横杠!)命令来运行jenkins(注意这个命令行窗口直到退出jenkins都是不可以关闭的)。通过浏览器打开http://<hostname>:8080/<hostname>可以替换成localhost或者本机ip,8080端口也可以换成别的),可以看到jenkins的管理环境。

Jenkins通常需要一个工作目录,该目录在默认情况下是:C:\Users\****\.jenkins,有三种方式可以改变该目录:

a)        使用你Web容器的管理工具设置JENKINS_HOME环境参数.

b)        在启动Web容器之前设置JENKINS_HOME环境变量.

c)        (不推荐)更改Jenkins.war(或者在展开的Web容器)内的web.xml配置文件.打开Jenkins的系统管理>系统设置:

4、  打开系统管理>插件管理>可选插件,安装如下插件:打开Jenkins的系统管理>系统设置:

a)        设置Android的sdk地址

b)        设置jdk地址

c)        设置Ant地址

若没有安装Ant,从http://ant.apache.org/bindownload.cgi下载最新的Ant,

ANT_HOME:H:\Jenkins\Ant\apache-ant-1.9.0(这里为你自己解压缩的目录)

PATH:%ANT_HOME%\bin(这个设置是为了方便在dos环境下操作)

5、  在Eclipse中新建一个Android项目以及测试项目,这里我用androidSDK下\samples\android-17\目录下的Spinner及SpinnerTest项目,file – new – other – android project from existing code,从上述目录中导入(导入时SpinnerTest报错,说明SpinnerSpinnerTest没有关联起来,只要将Spinner工程加入SpinnerTestbuild path即可。方法为SpinnerTest工程上右键-build path-configurebuild path-projects-add

配置ant

1、   为被测项目Spinner设置Ant,在Eclipse的workspace目录下面,执行以下命令:

android updateproject -p Spinner (若提示找不到target,在命令后附–target android-7 )

完成后在Spinner目录下,会生成build.xml和local.properties两个文件。

2、   为测试项目SpinnerTest设置Ant

android updatetest-project -m ../Spinner -p SpinnerTest

该命令中给出的-m选项后面跟的路径,必须是在SpinnerTest目录下相对的路径,不是workspace目录。

3、   在Eclipse中刷新这两个工程

注:“local.properties”文件包含了本地配置,例如你的android sdk安装的位置。在不同的搭建Jenkins机器上面,这个位置可能是不同的。这个文件不应该被检出到版本控制中。因此推荐将“local.properties”文件添加到忽略的选项中。“project.properties”和“ant.properties”(测试工程)是需要的,他们必须提交到版本控制中。

4、   在Spinner目录下面执行下面的命令看看ant是不是成功运行:

ant clean debug

如果执行成功,最后会出现“BUILDSUCCESSFUL”的字样。

5、   确保当前在你的电脑上面有一个运行的模拟器或者链接了一个真机,你可以运行下面的命令来运行测试项目:

ant clean emmadebug install test

若该命令运行成功,最后也会出现“BUILDSUCCESSFUL”的字样。

该命令的执行时间会比上一个命令的时间长一点,成功后会在bin目录下面生成coverage.html的文件。

注:官网上面说会在一个coverage的子目录下面生成该文件,但我在测试中是在bin目录下生成的。

配置emma

Emma用于在Jenkins中生成出Ant执行的测试用例的报表,上面我们测试后生成的是html格式的,但是要想在jenkins中生成图形等,则必须生成出xml格式的文件。

1.      在Android SDK安装的地方,打开

tools/ant/build.xml

文件,将完整的测试target(这里“完整的”是指从第一个节点开始直到</target>,注意这里如果xml文件是用ie浏览器打开的,会出现多余的字符而导致报错。应该下载一个notepad++来打开。)复制到测试项目的build.xml文件中,放在

<!-- version-tag: custom -->

这句的前面,并把<import file="${sdk.dir}/tools/ant/build.xml" />这句注释掉。

2.      把version-tag从1变为custom,避免该文件被重写。

<!-- version-tag: custom -->

后面两步为可选操作

3.      在测试项目的build.xml做如下改变:

<html outfile="coverage.html"/>

改为

<html outfile="coverage.html"/> <xml outfile="coverage/coverage.xml" />

4.      此时运行“ant clean emma debug install test”,则会生成coverage.xml文件。

注:我用的是jenkins1.511,不用做此项设置,xml文件就会生成。

安装SVN server 和 TortoiseSVN

1.        下载安装VisualSVN和TortoiseSVN。

2.        在User下建立一个用户,记住自己的用户名密码。在左边的Repositories下建立一个自己的仓库,我的命名为svnroot。

Eclipse与SVN的同步设置

1、  Eclipse安装SVN插件,参考http://developer.51cto.com/art/201005/202726.htm

2、  在Spinner工程上右键- team -share project – SVN - 创建新的资源库位置- URL:https://zhuming.sogou-inc.com/svn/svnroot/ - 使用项目名称作为文件夹名- Finish

3、  在Synchronize中可以看到刚才Share的工程,在工程上右键 – 提交,在VisualSVN中Repositories上右键 – 刷新,即可看到Repositories下自己的仓库中多了这个工程。

4、  如果eclipse中对此工程做了改动,可以在工程上右键 – 与资源库同步,在Synchronize中重新执行第二步即可。

配置工程与Jenkins

Jenkins环境修改

1.        下载android-junit-report-1.5.8.jar(可以下载更新的版本),将它加入SpinnerTest工程的build path中。其中配置buildpath是这样操作的:在eclipse中的SpinnerTest工程上右键-build path-configurebuild path-library-add external jars, 将上述jar包加入即可。

2.        修改SpinnerTest的AndroidManifest.xml,找到tag"instrumentation"将属性"android:name"的值改成 com.zutubi.android.junitreport.JUnitReportTestRunner。

3.        打开test工程下的build.xml,在</run-tests-helper>节点后加入下面的代码:

<echo>Downloading XML testreport...</echo>

<exec executable="${adb}"failοnerrοr="true">

<arg line="${adb.device.arg}"/>

<arg value="pull" />

<argvalue="/data/data/${tested.project.app.package}/files/junit-report.xml"/>

<arg value="junit-report.xml"/>

</exec>

找到其中名为test.runnerproperty节点,将它的值改为:

com.zutubi.android.junitreport.JUnitReportTestRunner

配置Spinner工程

1、新job – 构建一个自由风格任务Spinner,选择subversion,将app项目的svn地址填入(第一次使用的时候会要求提供svn账户密码)。高级项目选项使用自定义的工作空间,这里自己新建一个jenkinsworkspace,然后把地址填入,便于管理也保证工程与其测试工程可以正确关联。

2、增加构建步骤 - Invoke Ant,在其中的Targets填入clean debug。

3、在高级选项中的properties填入下面内容(注意填自己的安装信息):

sdk.dir=D:\\softwareinstall\\android\\adt-bundle-windows-x86-20130514\\sdk

下面4、5、6步是可选操作(不熟练者勿选):

4、构建后选项选择:PublishFindBugs analysis results,然后填入:reports/findbugs.xml

5、选择Archive theartifacts,这样可以在每次构建后提供构建出来的apk版本。

6、勾选E-mailNotification选项,在下面的recipients中填入需要接收构建异常信息的联系人邮件地址。勾选“每次不稳定的构建都发送邮件通知”选项。

配置SpinnerTest工程

1、新job – 构建一个自由风格任务SpinnerTest,选择subversion,将test项目的svn地址填入。高级项目选项 –使用自定义的工作空间 - D:\Jenkins Workspace

2、在Invoke Ant的target中填入:clean emma debug install test

3、在build file中填入build.xml。

4、在properties中填入sdk.dir=D:\\WORK\\ENVIROMENT\\ANDROID\\AndroidSDK。

下面5、6、7步是可选操作(不熟练者勿选):

5、勾选Publish JUnit testresult report,填入:junit-report.xml。

6、勾选Record Emmacoverage report,填入:coverage/coverage.xml。

7、勾选E-mailNotification,如app工程配置。

后记

哪里出了问题,或者需要修改,可以回复联系我。欢迎一起讨论!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值