用Ant编译、junit测试、生成测试报告、最终自动发mail

测试通过的版本如下:
Eclipse:3.3.2
jdk:1.6
junit:3.8
ant:1.7(1.7之前的版本好像还不提供mail功能。。。)

<!-- JUnit build script using ant 1.7 -->
<project name="JunitTestProject" default="mail" basedir=".">
<property name="app.name" value="JunitTestProject" />
<property name="build.dir" value="bin" />

<!-- ====================" path  define  " ================================ -->
<path id="cobertura.classpath">
  <fileset dir="lib/coberture">
   <include name="cobertura.jar" />
   <include name="*.jar" />
  </fileset>
</path>
<!-- ====================" cobertura task define  " Target ================================ -->
<taskdef classpathref="cobertura.classpath" resource="tasks.properties" />

<!-- ==================== "clean " Target ================================ -->
<target name="clean">
  <available property="junit.present" classname="junit.framework.TestCase" />
  <delete dir="${build.dir}" quiet="true" />
  <delete file="report" quiet="true" />
</target>

<!-- ==================== "copy xml resource " Target ================================ -->
<target name="copyxml" depends="clean">
  <copy todir="${build.dir}/testcases">
   <fileset dir="WEB-INF" />
  </copy>
</target>

<!-- ==================== "compile  src" Target ================================ -->
<target name="compile" depends="copyxml">
  <mkdir dir="${build.dir}" />
  <javac srcdir="src" destdir="${build.dir}" debug="yes">
   <classpath>
    <fileset dir="lib" casesensitive="yes">
     <include name="**/*.jar" />
    </fileset>
   </classpath>
   <include name="**/*.java" />
  </javac>
  <javac srcdir="WEB-INF" destdir="${build.dir}">
   <classpath>
    <fileset dir="lib" casesensitive="yes">
     <include name="**/*.jar" />
    </fileset>
   </classpath>
   <include name="*.jsp" />
  </javac>
</target>

<!-- ==================== jar" Target ================================ -->
<target name="jar" depends="compile">
  <mkdir dir="dist/lib" />
  <jar jarfile="dist/lib/${app.name}.jar" basedir="${build.dir}" includes="com/**" />
</target>

<!-- ==================== compile test src" Target ================================ -->
<target name="compiletests" depends="jar">
  <mkdir dir="${build.dir}/testcases" />
  <javac srcdir="test" destdir="${build.dir}/testcases" >
   <classpath>
    <fileset dir="lib" casesensitive="yes">
     <include name="**/*.jar" />
    </fileset>
    <fileset dir="dist/lib" casesensitive="yes">
     <include name="**/*.jar" />
    </fileset>
   </classpath>
   <include name="**/*.java" />
  </javac>
</target>

<!-- ==================== instrumented" Target ================================ -->
<target name="instrumented" depends="compiletests">
  <cobertura-instrument todir="bin/instrumented-classes">
   <ignore regex="org.apache.log4j.*" />
   <fileset dir="bin">
    <include name="com/**/*.class" />
   </fileset>
  </cobertura-instrument>
</target>

<!-- ==================== junit-test" Target ================================ -->
<target name="runtests" depends="instrumented">
  <mkdir dir="report" />
  <property name="tests" value="*Test" />
  <junit printsummary="yes" haltοnerrοr="yes" haltonfailure="yes" fork="yes">

   <formatter type="plain" usefile="false" />
   <formatter type="xml" />
   <batchtest todir="report">
    <fileset dir="test">
     <include name="**/${tests}.java" />
     <exclude name="**/ConfigTest.java" />
    </fileset>
   </batchtest>
   <!--
    Note the classpath order: instrumented classes are before the
    original (uninstrumented) classes.  This is important.
   -->
   <classpath location="bin/instrumented-classes" />
   <!--
    src classpath
   -->
   <classpath location="bin" />

   <!--
    The instrumented classes reference classes used by the
    Cobertura runtime, so Cobertura and its dependencies
    must be on your classpath.
   -->
   <classpath refid="cobertura.classpath" />
   <!--
    test case class path define
   -->
   <classpath>
    <fileset dir="lib" casesensitive="yes">
     <include name="**/*.jar" />
    </fileset>
    <pathelement location="bin/testcases" />
   </classpath>
  </junit>
</target>

<!-- ==================== junit-report" Target ================================ -->
<target name="report" depends="runtests">
  <mkdir dir="report/html" />
  <junitreport todir="report">
   <fileset dir="report">
    <include name="TEST-*.xml" />
   </fileset>
   <report todir="report/html" />
  </junitreport>
</target>


<!-- ==================== "coverage-report" Target ================================ -->
<target name="coverage-report" depends="report">
  <cobertura-report format="html" destdir="cobertura" >
   <fileset dir="src">
    <include name="**/*.java" />
   </fileset>
  </cobertura-report>
  <echo>The execution of coverage-report is complete. Coverage Reports are available in /${coverage-report}</echo>
</target>

<!-- ==================== "make file to zip" Target ================================ -->
<target name="make_data_zip" depends="coverage-report">
  <tstamp>
   <format property="date" pattern="yyyy-MM-dd HH-mm" />
  </tstamp>
  <jar jarfile="dist/lib/cobertura${date}.zip" basedir="cobertura" />
  <jar jarfile="dist/lib/report${date}.zip" basedir="report" excludes="*.xml"/>
</target>


<!-- ==================== "mail" Target ================================ -->
<target name="mail" depends="make_data_zip">
  <!-- <taskdef name="mail" classname="org.apache.tools.ant.taskdefs.optional.mail.MimeMail"/> -->
  <tstamp/>
  <mail messageMimeType="text/html"
                    messageFile="message.txt"
                    tolist="bpcjy@hotmail.com"
                    mailhost="mailsvr or mail IPAddress"
                    subject="JUnit Test Results: ${TODAY}"
                    from="bpcjy@hotmail.com">
   <fileset dir=".">
    <include name="dist/lib/*.zip"/>
   </fileset>
  </mail>
</target>

</project>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值