科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Java应用利器组合:Ant+JUnit+Cobertura

Java应用利器组合:Ant+JUnit+Cobertura

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

看标题就知道,这个是开发一个Java应用的利器组合,使用Ant完成工程的构建(Build),使用JUnit完成单元测试,使用Cobertura完成代码覆盖测试,也可以辅助查找性能瓶颈和一些类型的BUG,下面是一个完整的build.xml范例

作者:中国IT实验室 来源:中国IT实验室 2007年9月24日

关键字: Cobertura JUnit Ant java

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

    看标题就知道,这个是开发一个Java应用的利器组合,使用Ant完成工程的构建(Build),使用JUnit完成单元测试,使用Cobertura完成代码覆盖测试,也可以辅助查找性能瓶颈一些类型的BUG,下面是一个完整的build.xml范例,可以完全拿来用,不需任何修改,只要你的目录和这里的目录一致(应该也是很通用的):

下载下面的build.xml文件

文件内容:
<project default="all">
    <!? =================================================================== ?>
    <!?                               Definitions                           ?>
    <!? =================================================================== ?>   
    <property name="base-dir" location="." />
    <property name="lib-dir" location="${base-dir}/lib" />
    <property name="src-dir" location="${base-dir}/src" />
    <property name="testcase-dir" location="${base-dir}/test" />
    <property name="out-dir" location="${base-dir}/classes" />
    <property name="report-dir" location="${base-dir}/report" />
    <property name="junit-dir" location="${report-dir}/junit" />
    <property name="junit-xml-dir" location="${junit-dir}/xml" />
    <property name="junit-html-dir" location="${junit-dir}/html" />
    <property name="cobertura-dir" location="${report-dir}/cobertura" />
    <property name="cobertura-xml-dir" location="${cobertura-dir}/xml" />
    <property name="cobertura-html-dir" location="${cobertura-dir}/html" />
    <property name="instrumented-dir" location="${report-dir}/instrumented" />
    <property name="instrument-file" location="${instrumented-dir}/cobertura.ser" />
    <property name="cobertura.dir" value="${instrumented-dir}" />
   
   
    <path id="classpath.all">
        <pathelement location="${out-dir}" />
        <fileset id="alljars" dir="${lib-dir}">
            <include name="**/*.jar" />
        </fileset>
    </path>

    <!? include the cobertura building jars ?> 
    <path id="cobertura.classpath">
        <path refid="classpath.all" />
    </path>   
   
    <!? define the cobertura property file ?> 
    <taskdef classpathref="cobertura.classpath" resource="tasks.properties"/>
   
    <!? =================================================================== ?>
    <!?                            Project Targets                          ?>
    <!? =================================================================== ?>
   
    <target name="init" description="initialize the project env.">
        <!? create the output folder ?> 
        <mkdir dir="${out-dir}" />
        <mkdir dir="${report-dir}" />
        <copy todir="${out-dir}">
            <fileset dir="${src-dir}" includes="**/*.properties" />
        </copy>
    </target>

     <target name="compile" depends="init">
        <javac srcdir="${src-dir}" destdir="${out-dir}">
            <classpath refid="classpath.all" />
        </javac>
    </target>
  
    <!? =================================================================== ?>
    <!?                            Unit Test Targets                        ?>
    <!? =================================================================== ?>
   
    <!? - - - - - - - - - - - - - - - - -
      target: init
      initialize the build env            
    - - - - - - - - - - - - - - - - - ?>   
    <target name="init-test" description="initialize the test env.">
        <!? create the output folder ?> 
        <mkdir dir="${junit-dir}" />
        <mkdir dir="${junit-xml-dir}" />
        <mkdir dir="${junit-html-dir}" />
    </target>

    <!? - - - - - - - - - - - - - - - - -
      target: compile-test
      compile the test cases                
    - - - - - - - - - - - - - - - - - ?>    
    <target name="compile-test" depends="compile">
        <javac srcdir="${testcase-dir}" destdir="${out-dir}">      
            <classpath refid="classpath.all" />
        </javac>
    </target>

    <!? =================================
      target: test
      run the unit test
     ================================= ?>   
    <target name="test" depends="init-test">
        <junit fork="yes" printsummary="on" maxmemory="100m">
            <sysproperty key="net.sourceforge.cobertura.datafile"
                file="${instrument-file}" />

            <classpath location="${instrumented-dir}" />
            <classpath refid="cobertura.classpath" />
                  
            <formatter type="xml" />
            <batchtest todir="${junit-xml-dir}">
                <fileset dir="${out-dir}">
                    <include name="**/Test*.class" />
                    <exclude name="**/*$*.class" />
                </fileset>
            </batchtest>
        </junit>
        <junitreport todir="${junit-xml-dir}">
            <fileset dir="${junit-xml-dir}">
                <include name="TEST-*.xml" />
            </fileset>
            <report format="frames" todir="${junit-html-dir}" />
        </junitreport>
    </target>
   
    <!? =================================================================== ?>
    <!?                      Code Coverage Targets                          ?>
    <!? =================================================================== ?>
   

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章