zoukankan      html  css  js  c++  java
  • 【测试技术】ant在测试中的使用@文件以及目录的读写删和复制

        ant其实就是一个java的打包工具,存在的时间已经很久了,很多同行在使用中可能就是用,对为什么要用它,能够怎么用没有更多的了解:

    --------------------------------------------------

    ps:ant功能忒强大了,一篇文章搞不定啊,只好分开写。要不阅读困难。

    --------------------------------------------------

    1.为什么要用:

    高级语言的特点就是需要编译,每当编译就需k要有环境依赖,以及在编译中需要有编译先后顺序,当然,现在的eclipse足够强大可以帮我们全部搞定,但是每当我们想去做重复性编译以及运行的时候,更多的还是希望能够减少对环境依赖,同时也希望能够脱离平台,而ant正是干这个用的》

    2.基本用法:

    相关的资料网上已经有很多,针对path,class,target等标签分别干嘛干嘛的,我这里也不必多说,只是简单按功能介绍下:

    @文件以及目录的读写删和复制

    @java项目的编译

    @java文件的运行

    @测试脚本的运行(testng,junit)

    @测试报告的生成(testng,junit)

    @压缩文件

    @发送邮件

    以上所述都是跟自动化测试中常用到的功能,可能还有其他的功用,日后若是遇到了再补充。

    @文件以及目录的读写删和复制

    主要是文件和文件夹

    <?xml version="1.0" encoding="UTF-8"?>
    <project basedir="." default="copyfile" name="file_and_folder">
    
        <!-- property 定义全局变量-->
        <property name="test.file" value="ant/test1.txt"/>
        <property name="test.dir" value="ant/test1"/>
        <property name="to.dir" value="tar"/>
        <property name="to.file" value="tar/tar1.txt"/>
    
       <target name="createfile">
          <touch file="${test.file}"/>
       </target>
        
       <target name="copyfile1">
          <copy file="${test.file}" todir="${to.dir}" overwrite="true" />
       </target>
       <target name="copyfile2">
          <copy file="${test.file}" tofile="${to.file}" overwrite="true" />
       </target>   
    
       <target name="cutfile">
          <move file="${test.file}" todir="${to.dir}" overwrite="true" />
       </target> 
    
       <target name="delfile">
          <delete file="${to.file}"/>
       </target>
    
       <target name="createdir">
          <mkdir dir="${test.dir}"/>
       </target>
        
       <target name="copydir">
          <copy todir="${to.dir}/new" overwrite="true">
          <fileset dir="${test.dir}" excludes="**/*.java"/>
          </copy>
       </target>
    
       <target name="cutdir">
          <move dir="${test.dir}" todir="${to.dir}" overwrite="true" />
       </target> 
    
       <target name="deldir">
          <delete dir="${to.file}/new"/>
       </target>   
      
       <target name="packClient">
            <exec executable="C:WINDOWSsystem32cmd.exe"  failonerror="false" dir=".">
                    <arg line="/c dir" />            
                </exec>    
       </target>     
       
    </project>

    其他常用的文件操作:

    <!-- 拷贝一个文件: -->
    <copy file="myfile.txt" fofile="mycopy.txt"/>
    
    <!-- 拷贝一个文件到指定目录: -->
    <copy file="myfile.txt" todir"../some/other/dir"/>
    
    <!-- 拷贝一个目录到另一个目录: -->
    <copy todir="../new/dir">
    <fileset dir="src_dir"/>
       <exclude name="**/*.java"/>
    </fileset>
    </copy>
    <!---->
    <copy todir="../dest/dir"
    <fileset dir="src_dir" excludes="**/*.java"/>
    </copy>
    
    <!-- 拷贝一个文件集合到一个目录,同时建立备份文件: -->
    <copy todir="../backup/dir">
    <fileset dir="src_dir"/>
    <globmapper from="*" to="*.bak"/>
    </copy>
    
    <!-- 拷贝一个集合的文件到一个目录,并替换掉@TITLE@ -->
    <copy todir="../backup/dir">
    <fileset dir="src_dir"/>
    <filterset>
       <filter token="TITLE" value="Ann Lee"/>
    </filterset>
    </copy>
    
    <!-- 拷贝一个目录下的东西到另一个目录下 -->
    <copydir src="${src}/resources" dest="${dest}" includes="**/*.java" excludes="**/Test.java"/>
    
    <!-- 拷贝一个文件 -->
    <copyfile src="Test.java" dest="subdir/Test.java"/>
    
    <!-- 删除文件,目录,(拷贝中各种关于目录的操作也可以用在这里)
    
    删除一个文件 -->
    <delete file="/lib/ant.jar"/>
    
    <!-- 删除一个目录 -->
    <delete dir="lib"/>
    
    <!-- 删除所有符合规则的文件(.bak文件)包括子目录 -->
    <delete>
    <fileset dir="." includes="**/*.bak"/>
    </delete>
    
    <!-- 删除当前目录下所有的文件和目录,包括当前目录 -->
    <delete includeEmptyDirs="true">
    <fileset dir="build"/>
    </delete>
    
    <!-- 删除当前目录下所有的文件和目录,不包括当前目录 -->
    <delete includeemptydirs="true">
    <fileset dir="build" includes="**/*"/>
    </delete>
    
    <!-- 删除当前目录下所有的svn相关文件(因为svn文件默认是excludes,所以要设置一下) -->
    <delete defaultexcludes="false">
    <fileset dir="src" includes="**/*.svn"/>
    </delete>
    
    
    
    <!-- 6.8,Touch的使用 -->
    
    <!-- 如果文件不存在创建文件,如果存在,更改最后访问时间为当前系统时间 -->
    <touch file="myfile"/>
    
    <!-- 如果文件不存在创建文件,更改最后访问时间为06/28/2002 2:02 pm -->
    <touch datetime="09/10/1974 4:30 pm">
    <fileset dir="src_dir"/>
    </touch>
    
    <!-- 6.5,剪切文件 -->
    <move todir="some/new/dir">
    <fileset dir="my/src/dir">
    <include name="**/*.jar"/>
        <exclude name="**/ant.jar"/>
    </fileset>
    </move>
    
    <!-- 6.6重命名-->
    <rename src="ann.jar" dest="ant-${version}.jar"/>
    
    <!-- 6.7建立临时文件 -->
    
    <!-- 在目录build下,建立名为temp.file,后缀为.xml的文件 -->
    <tempfile property="temp.file" destDir="build" suffix=".xml"/>
    
    <!-- 6.10,替换replace -->
    
    <replace file="configure.sh" value="defaultvalue" propertyFile="source/name.properties">
    <replacefilter token="@token1@"/>
    <replacefilter token="@token2@" value="value2"/>
    <replacefilter token="@token2@" value="property.key"/>
    </replace>
  • 相关阅读:
    gThumb 3.1.2 发布,支持 WebP 图像
    航空例行天气预报解析 metaf2xml
    Baruwa 1.1.2 发布,邮件监控系统
    Bisect 1.3 发布,Caml 代码覆盖测试
    MoonScript 0.2.2 发布,基于 Lua 的脚本语言
    Varnish 入门
    快速增量备份程序 DeltaCopy
    恢复模糊的图像 SmartDeblur
    Cairo 1.12.8 发布,向量图形会图库
    iText 5.3.4 发布,Java 的 PDF 开发包
  • 原文地址:https://www.cnblogs.com/100fighting/p/3156969.html
Copyright © 2011-2022 走看看