标签:
单元测试
大学以及实习期间,就是web方向的,也没搞过什么单元测试次,这是工作以来第一次搞这玩意儿。
我是用junit4来做单元测试的,目前测试的内容全是service层的代码,被测试的方法也是差不多局限于queryInfo和getCount方法,方法名也能说明方法的作用了,对于增删改的方法测试,由于框架问题还没实现。
说到框架,插一句,针对action层做单元测试有难度,像ssh框架就有支持可以测试action层,但是我们公司用的自己的框架,这些支持做的并不好。
继续说,每个单元测试文件都能直接右键run as junit test执行测试,当然如果单元测试文件多了,这样显然不好的,所以我用了ant批量编译执行。这个ant.xml文件就长这样,具体的写法我也是按照网上的照猫画虎了一下,因为当时为了完成任务所以也没仔细研究,其实就算仔细研究了,为了赶进度我也记不下来,所以这又是一次学习的机会了,下次随便就来整理一下这个xml文件。
当把这个文件配置到sonar上之后,Jenkins就会定时启动这个文件,然后保存在服务器上的单元测试就会被执行,执行完成之后sonar会使用另一个xml文件进行代码分析,包括进行漏洞扫描等等,这个文件以后也是要说的。
1 <?xml version="1.0" encoding="gb2312"?> 2 3 <project basedir="../" default="report" name="wbass" xmlns:jacoco="antlib:org.jacoco.ant"> 4 5 <property name="result.dir" value="${basedir}/result" /> 6 7 <property name="result.class.dir" value="${result.dir}/classes" /> 8 9 <property name="result.test_class.dir" value="${result.dir}/test_classes" /> 10 11 <property name="result.data.dir" value="${result.dir}/data" /> 12 13 <property name="result.jacoco.dir" value="${result.dir}/jacoco" /> 14 15 <property name="result.jacoco.report.dir" value="${result.jacoco.dir}/report" /> 16 17 <target name="init"> 18 19 <mkdir dir="${result.dir}" /> 20 21 <delete> 22 <fileset dir="${result.dir}" includes="**/*" /> 23 </delete> 24 25 <mkdir dir="${result.data.dir}" /> 26 27 <mkdir dir="${result.class.dir}" /> 28 29 <mkdir dir="${result.test_class.dir}" /> 30 31 <mkdir dir="${result.jacoco.dir}" /> 32 33 <mkdir dir="${result.jacoco.report.dir}" /> 34 35 36 </target> 37 38 <target name="compile" depends="init"> 39 <echo message="开始编译java" /> 40 41 <!-- 需要将src所需的配置文件copy到class中 --> 42 <copy todir="${result.class.dir}"> 43 <fileset dir="${basedir}/src"> 44 <include name="**/*.properties"/> 45 <include name="**/*.vm"/> 46 </fileset> 47 </copy> 48 49 <javac srcdir="${basedir}/src" destdir="${result.class.dir}" encoding="UTF-8" debug="on" debuglevel="lines,vars,source" nowarn="true" failonerror="true" fork="true" memorymaximumsize="1024M" includeantruntime="on"> 50 <classpath> 51 <fileset dir="${basedir}/lib" includes="**/*.jar" /> 52 </classpath> 53 <include name="**/*.*" /> 54 </javac> 55 56 <javac srcdir="${basedir}/test" destdir="${result.test_class.dir}" encoding="UTF-8" debug="on" debuglevel="lines,vars,source" nowarn="true" failonerror="true" fork="true" memorymaximumsize="1024M" includeantruntime="on"> 57 <classpath> 58 <fileset dir="${basedir}/lib" includes="**/*.jar" /> 59 <pathelement path="${result.class.dir}" /> 60 </classpath> 61 <include name="**/*Test.*" /> 62 </javac> 63 64 <echo message="编译完成" /> 65 66 </target> 67 68 <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml"> 69 70 <classpath path="${basedir}/lib/jacocoant.jar" /> 71 72 </taskdef> 73 74 <target name="test" depends="compile"> 75 76 <copy todir="${result.class.dir}"> 77 <fileset dir="${basedir}/config" includes="**/*" /> 78 <fileset dir="${basedir}/src/sql-config" includes="*.*" /> 79 </copy> 80 81 <jacoco:coverage destfile="${result.dir}/jacoco.exec"> 82 <junit fork="true" forkmode="once" printsummary="on" failureproperty="unit.test.failure" jvm=""> 83 <jvmarg value="-XX:MaxPermSize=512M" /> 84 <jvmarg value="-Xms512m" /> 85 <jvmarg value="-Xmx2048m"/> 86 <classpath> 87 <fileset dir="${basedir}/lib" includes="**/*.jar" excludes="ant.jar"/> 88 <pathelement path="${result.class.dir}" /> 89 <pathelement path="${result.test_class.dir}" /> 90 </classpath> 91 92 <formatter type="xml" /> 93 <batchtest todir="${result.data.dir}"> 94 <fileset dir="${basedir}/test"> 95 <include name="**/*Test.java" /> 96 </fileset> 97 </batchtest> 98 </junit> 99 </jacoco:coverage> 100 </target> 101 102 <target name="report" depends="test"> 103 <jacoco:report> 104 <executiondata> 105 <file file="${result.dir}/jacoco.exec" /> 106 </executiondata> 107 108 <structure name="jacoco_wbass"> 109 <classfiles> 110 <fileset dir="${result.class.dir}" /> 111 </classfiles> 112 <sourcefiles encoding="UTF-8"> 113 <fileset dir="${basedir}/src" /> 114 </sourcefiles> 115 </structure> 116 <html destdir="${result.jacoco.report.dir}" /> 117 </jacoco:report> 118 </target> 119 120 </project>
标签:
原文地址:http://www.cnblogs.com/cyhao/p/4799389.html