• Ant结合Junit生成测试报告


    AntDemo.java

    View Code
     1 package com.xiong.ant.demo;
     2 
     3 import java.util.ArrayList;
     4 import java.util.List;
     5 
     6 public class AntDemo
     7 {
     8     public boolean save()
     9     {
    10         return true;
    11     }
    12 
    13     public boolean delete()
    14     {
    15         return false;
    16     }
    17 
    18     public int update()
    19     {
    20         return 1;
    21     }
    22 
    23     public List<Object> findAll()
    24     {
    25         return new ArrayList<Object>();
    26     }
    27 
    28     public Object findById(int id)
    29     {
    30         return "Object";
    31     }
    32 
    33     public Object checkNonNull()
    34     {
    35         return "123";
    36     }
    37 
    38     public Object checkNull()
    39     {
    40         return null;
    41     }
    42 
    43     public void checkException()
    44     {
    45         throw new RuntimeException("运行期异常");
    46     }
    47 }

    ADemoTest.java

    View Code
     1 package com.xiong.ant.demo.test;
     2 
     3 import static org.junit.Assert.*;
     4 
     5 import org.junit.After;
     6 import org.junit.Before;
     7 import org.junit.Test;
     8 
     9 import com.xiong.ant.demo.AntDemo;
    10 
    11 public class ADemoTest
    12 {
    13     private AntDemo ad = null;
    14 
    15     @Before
    16     public void setUp()
    17     {
    18         this.ad = new AntDemo();
    19     }
    20 
    21     @Test
    22     public void testCheckNonNull()
    23     {
    24         assertNotNull("结果为null", this.ad.checkNonNull());
    25     }
    26 
    27     @Test
    28     public void testCheckNull()
    29     {
    30         assertNull("结果不为null", this.ad.checkNull());
    31     }
    32 
    33     @Test(expected = RuntimeException.class)
    34     public void testCheckException()
    35     {
    36         this.ad.checkException();
    37     }
    38 
    39     @After
    40     public void tearDown()
    41     {
    42         this.ad = null;
    43     }
    44 }

    AntDemoTest.java

    View Code
     1 package com.xiong.ant.demo.test;
     2 
     3 import static org.junit.Assert.*;
     4 
     5 import org.junit.After;
     6 import org.junit.Before;
     7 import org.junit.Test;
     8 
     9 import com.xiong.ant.demo.AntDemo;
    10 
    11 public class AntDemoTest
    12 {
    13     private AntDemo ad = null;
    14 
    15     @Before
    16     public void setUp()
    17     {
    18         this.ad = new AntDemo();
    19     }
    20 
    21     @Test
    22     public void testSave()
    23     {
    24         assertTrue("插入数据失败!", this.ad.save());
    25     }
    26 
    27     @Test
    28     public void testDelete()
    29     {
    30         assertFalse("删除数据成功!", this.ad.delete());
    31     }
    32 
    33     @Test
    34     public void testUpdate()
    35     {
    36         assertEquals("更新数据失败!", 1, this.ad.update());
    37     }
    38 
    39     @Test
    40     public void testFindAll()
    41     {
    42         assertNotNull("查询结果为null", this.ad.findAll());
    43     }
    44 
    45     @Test
    46     public void testFindById()
    47     {
    48         assertNotNull("查询结果为null", this.ad.findById(10));
    49     }
    50 
    51     @After
    52     public void tearDown()
    53     {
    54         this.ad = null;
    55     }
    56 }

    build.xml

    View Code
     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <project>
     3     <echo>设置属性</echo>
     4     <property file="build.properties"></property>
     5     <property name="build.classes" location="${build.dir}/classes"></property>    
     6     <property name="build.src" location="${build.dir}/src"></property>
     7     <property name="build.dist" location="${build.dir}/dist"></property>    
     8     <property name="build.test.dir" location="${build.dir}/test"></property>
     9     <property name="build.test.classes" location="${build.test.dir}/classes"></property>
    10     <property name="build.test.report" location="${build.test.dir}/report"></property>
    11     
    12     <echo>设置环境属性</echo>
    13     <path id="JunitLib">
    14         <fileset dir="${junit.jar}" includes="*.jar"></fileset>
    15     </path>
    16     
    17     <path id="JunitCompileContext">
    18         <path refid="JunitLib"></path>
    19         <pathelement location="${build.classes}"/>
    20     </path>
    21     
    22     <path id="JunitExecuteContext">
    23         <path refid="JunitCompileContext"></path>
    24         <pathelement location="${build.test.classes}"/>
    25     </path>
    26     
    27     
    28     <echo>设置文件集</echo>
    29     <fileset id="WaitForCompile" dir="${src.dir}" includes="**/*.*"></fileset>
    30     
    31     
    32     <echo>初始化</echo>
    33     <target name="init">
    34         <delete dir="${build.dir}"></delete>        
    35         <mkdir dir="${build.dir}"/>
    36         <mkdir dir="${build.classes}"/>
    37         <mkdir dir="${build.src}"/>
    38         <mkdir dir="${build.dist}"/>
    39         <mkdir dir="${build.test.dir}"/>
    40         <mkdir dir="${build.test.classes}"/>
    41         <mkdir dir="${build.test.report}"/>
    42     </target>
    43     
    44     <echo>复制源文件</echo>
    45     <target name="copySrc">
    46         <copy todir="${build.src}" failonerror="true">
    47             <fileset refid="WaitForCompile"></fileset>
    48         </copy>
    49     </target>
    50     
    51     <echo>编译源文件</echo>
    52     <target name="compile" depends="init">
    53         <javac classpathref="JunitCompileContext" failonerror="true" srcdir="${src.dir}" destdir="${build.classes}" includeantruntime="true"></javac>
    54     </target>
    55     
    56     <echo>编译Junit测试文件</echo>    
    57     <target name="CompileJunitTest" depends="compile,copySrc">
    58         <javac classpathref="JunitCompileContext" failonerror="true" srcdir="${test.src.dir}" destdir="${build.test.classes}" includeantruntime="true"></javac>
    59     </target>
    60     
    61     <echo>自动运行单元测试并生成单元测试报告</echo>
    62     <target name="AutoExcuteJunit" depends="CompileJunitTest">
    63         <junit haltonfailure="true" printsummary="true">
    64             <classpath refid="JunitExecuteContext"></classpath>
    65             <formatter type="xml" usefile="true"/>
    66             <batchtest todir="${build.test.report}">
    67                 <fileset dir="${build.test.classes}" includes="${test.classname}"></fileset>
    68             </batchtest>
    69         </junit>
    70         <junitreport todir="${build.test.report}">
    71             <fileset dir="${build.test.report}" includes="TEST-*.xml"></fileset>
    72             <report format="frames" todir="${build.test.report}/html"/>
    73         </junitreport>
    74     </target>
    75     
    76     <echo>生成Jar</echo>
    77     <target name="jar" depends="AutoExcuteJunit">
    78         <jar destfile="${build.dist}/${jar.name}" basedir="${build.classes}"></jar>
    79     </target>
    80     
    81 </project>

    build.properties

    View Code
    1 src.dir=src
    2 test.src.dir=test
    3 build.dir=Build
    4 jar.name=AntJuintDemo.jar
    5 execute.class=com.xion.ant.demo.MyFirstAntDemo
    6 
    7 junit.jar=lib
    8 test.classname=**/*Test.class

    生成结果:

  • 相关阅读:
    DockerFile体系结构
    Nignx(二) server_name 规则
    解决Redis分布式锁——死锁问题
    redis缓存穿透,缓存击穿,缓存雪崩原因+解决方案
    Docker_Linux
    正则例子
    部属流程
    Mysql insert语句的优化
    MySQL innodb_fast_shutdown参数讲解
    MySQL技术内幕InnoDB存储引擎(表&索引算法和锁)
  • 原文地址:https://www.cnblogs.com/xiongyu/p/2508328.html
Copyright © 2020-2023  润新知