ANT+SVN安卓测试框架:ANT部分一

本文主要讲述如何配置ANT+SVN测试框架的ANT部分。

       ANT在框架中的主要作用相当于取代人的作用,自动化构建测试环境,思路如下

  • 系统定时运行bat文件
  • ==>bat文件执行启动ant的命令
  • ==>ant的xml文件从svn服务器上下载/更新版本库
  • ==>ant执行安卓测试任务(包括自动编译,打包,安装,测试)
  • ==>ant发送日志文件到邮箱。

第一步:安装ANT

理所当然想要使用ant工具首先需要安装ant,安装过程详细可自行问度娘。

  1. 到ant的官网下载最新的安装包,关键是jar包
  2. 在环境变量中加入ANT_HOME变量,值为安装包的解压目录,在系统变量path中加入lib路径(这里的作用一是方便在命令行中调用ant命令,为bat文件执行命令建立基础;二是可以在ant的xml文件中默认调用ant下lib的jar包)

第二步:连接SVN

想要通过ant连接SVN需要一个名为svnant的工具,自行百度svnant-x.x.x(本例中使用svnant-1.3.1);

注:应该同时需要svn的客户端,由于编码电脑中安装的svn的客户端和服务端,不能确定是否需要,留后研究。

直接分析从svn检出版本的代码(实际上只需要2个功能:检出和更新)

检出即从版本库中下载版本代码,在首次构建测试环境时使用,以后则使用更新功能。

------------checkout.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- 本文件用于检出工程,依赖于子目录svnant_lib中的4个svnant-1.3.1包和path.properties -->
<!-- 在path.properties中设置SVN地址 (svn-url) -->
<!-- 默认检出版本到本文件所在目录下 -->
<project name="checkout" default="check-out">
    <property file="path.properties" />
    <property name="destpath" value="${basedir}/files"></property>
    <!-- 定义一个PATH元素,告诉ANT 到哪找SVNANT的类库 -->
	<path id="path.svnant">   
          <!-- SVNANT通讯包 -->
          <!-- 若将包放到ANT_HOME下的lib目录下则不需要此定义 -->
          <pathelement location="${basedir}/svnant_lib/svnant.jar"/>  
          <pathelement location="${basedir}/svnant_lib/svnClientAdapter.jar"/>          
          <pathelement location="${basedir}/svnant_lib/svnkit.jar"/>    
          <pathelement location="${basedir}/svnant_lib/svnjavahl.jar"/>     
    </path>
    <!-- 必须指出resource -->
    <typedef
          resource="org/tigris/subversion/svnant/svnantlib.xml"
          classpathref="path.svnant"/>
      <!-- 引用 svnantlib.xml ,其中定义了ANT的SVN命令,见下方详解。 --> 
      <!-- 定义svnSetting ,新的设置SVN属性方式  -->
      <!-- 通过SVNKIT模式(即设置为TRUE),而不是JAVAHL模式 --> 
    <svnSetting id="svn.settings"    
        svnkit="true"   
        javahl="false"
        username=""
        password="">
    </svnSetting>
 	<!-- 检出SVN版本,第一次使用建立SVN的work copy -->
    <target name="check-out">
        <echo message="begin check out from ${svn-url} to ${destpath}"></echo>
        <!--引用上面定义的svnSetting ,新的设置SVN属性方式-->
        <svn refid="svn.settings">  
            <!-- 执行checkout 命令-->
            <checkout recurse="true" url="${svn-url}" destPath="${destpath}" /> 
        </svn>
        <echo message="success!"></echo>
    </target>
</project>

 以上代码文件要求如下:

---checkout.xml     上述代码

---path.properties   资源文件,定义代码中需要的变量

---svnant_lib           svnant的jar包

    ---svnant.jar

    ---svnClientAdapter.jar

    ---svnkit.jar

    ---svnjavahl.jar

------------path.properties

#svn服务器版本库路径
svn-url = svn://localhost/svndemo/test
#检出路径
destpath = files

 svn-url:服务器的路径设置在svn部分说明

destpath:为了方便管理,将所有从版本库中检出的文件放到当前目录下的files文件夹中,没有则自动新建

为了可以从版本库中获取文件还需要权限,一般需要在服务器端设置用户和密码,详细不作讨论,自行百度。连接时需要设置用户名在下面位置设置

<svnSetting id="svn.settings"    
        svnkit="true"   
        javahl="false"
        username=""
        password="">
    </svnSetting>

一般个人测试开发,对安全性基本没有要求,所以这里简单地没有设置用户,即匿名访问,需要在svn的服务器端增加匿名访问write/read权限才能正常访问,详细见svn部分:ANT+SVN安卓测试框架:SVN部分;

相关推荐