Jenkins持续集成环境搭建参考教程
2014-08-09 17:20
573 查看
写在前面
搭建测试环境花了不少时间也走了不少弯路,虽然现在也谈不上精通,但总算攒了不少经验教训和人品。在此就把我掌握的一些相关知识共享给大家,希望大家在进行相同工作时能少费一点功夫,留着干些更重要的事~!参考资料
http://www.eoeandroid.com/thread-271570-1-1.htmlhttp://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.htm2、 在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 externaljars, 将上述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 Workspace2、在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工程配置。
后记
哪里出了问题,或者需要修改,可以回复联系我。欢迎一起讨论!相关文章推荐
- Jenkins+git+fir搭建持续集成环境(超详细搭建教程)
- jenkins maven Spring Boot git Linux持续集成环境搭建教程
- 自动化测试持续集成:jenkins+slave环境搭建全教程(以win7+win7为例)
- jenkins下搭建c++持续集成环境
- 基于 Jenkins 快速搭建持续集成环境
- 基于 Jenkins 快速搭建持续集成环境
- 基于 Jenkins 快速搭建持续集成环境
- jenkins下搭建c++持续集成环境
- Jenkins+Maven+SVN快速搭建持续集成环境(转)
- 基于 Jenkins 快速搭建持续集成环境
- 基于 Jenkins 快速搭建持续集成环境
- 基于 Jenkins 快速搭建持续集成环境--转
- 基于 Jenkins 快速搭建持续集成环境
- 基于 Jenkins 快速搭建持续集成环境
- 持续集成+持续部署(二)基于Jenkins 快速搭建持续集成环境
- Jenkins持续集成环境搭建
- Android开发、测试持续集成环境Jenkins搭建
- Jenkins: 使用Jenkins搭建持续集成(CI)环境
- Jenkins+Maven+SVN快速搭建持续集成环境
- 基于 Jenkins 快速搭建持续集成环境