您的位置:首页 > 其它

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

2014-08-09 17:20 573 查看

写在前面

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

参考资料

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报错,说明Spinner与SpinnerTest没有关联起来,只要将Spinner工程加入SpinnerTest的build
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}"failonerror="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.runner的property节点,将它的值改为:

com.zutubi.android.junitreport.JUnitReportTestRunner

配置Spinner工程

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

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工程配置。

后记

哪里出了问题,或者需要修改,可以回复联系我。欢迎一起讨论!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: