51Testing软件测试论坛

标题: 单元测试整体框架如何搭建?? [打印本页]

作者: gantangyu    时间: 2005-8-12 12:10
标题: 单元测试整体框架如何搭建??
因为即将要做一个项目的单元测试,程序员已经把部分代码写完了,他们叫我搭建整体测试框架,我只知道junit测试每个.java文件都会为其自动搭建一个setup()和teardown()的框架,但是我知道怎么搭建项目的整体测试框架?希望有这方面的人能够指导我一下,十分感谢`
作者: sincky    时间: 2005-8-12 13:12
我建议多看下网上相关资料,或者买本书看看。
给你简单说明一下:
1)首先你要测试的都是java源文件,编写每个java代码的junit测试代码,至于如何写,我就不能教你了;setup和teardown的格式,可以通过eclipse等IDE自动生成
2)然后,那么最好把java代码和junit代码分离放在不同目录
3)然后编写ant的build.xml文件,它会自动构建并运行整个项目的junit测试,还能生成html的报告
4)或者使用maven也可以,它和ant差不多,不过用的人比较少,出现问题可能也没人帮你
5)反正要做java单元测试,要多看看相关资料,ant和junit集成使用,是目前企业做java单元测试的主流
作者: gantangyu    时间: 2005-8-12 13:56
标题: 谢谢指教~
你有什么好的推荐的书吗?不要告诉我是junit action这本,因为我有英文的,而且太多人说的都是这本。
关于编写ant的build.xml文件,它会自动构建并运行整个项目的junit测试-------------------------这里我不是很懂,能告诉我怎么配置xml文件吗?
作者: sincky    时间: 2005-8-12 23:01
那本书我看过,又没有关于ant的编写。
我随后会录制junit课程放到网上,给大家学习!

关于ant的资料,网上有很多,编写也不难,这里我贴个例子吧:

<?xml version="1.0" encoding="gb2312"?>
<!--作者:sincky.zhang-->
<project name="practice" default="test" basedir=".">
    <property file="build.properties"/>
    <!-- <property environment="env"/>
         <property name="j2ee" value="env.j2ee_home"/>
    -->
    <property name="base.dir" location="." />

    <!--定义测试源文件-->
    <property name="src.dir" location="${base.dir}/practice" />
    <!--定义输出位置-->
    <property name="src.java.dir" location="${src.dir}/java"/>
    <property name="src.test.dir" location="${src.dir}/test"/>
    <!--定义目标位置-->
    <property name="target.dir" location="${base.dir}/target"/>
    <property name="target.classes.java.dir" location="${target.dir}/classes/java"/>
        <property name="target.classes.test.dir" location="${target.dir}/classes/test"/>
    <!--定义报告位置-->
    <property name="target.report.dir" location="${target.dir}/report"/>
    <property name="target.jars.dir" location="${target.dir}/jars"/>
    <!--定义lib-->
    <property name="lib" location="${base.dir}/lib"/>

    <!--initialization-->
    <target name="init">
        <!--<tstamp/>-->
        <mkdir dir="${target.classes.java.dir}"/>
        <mkdir dir="${target.classes.test.dir}"/>
        <mkdir dir="${target.report.dir}"/>
            <mkdir dir="${target.jars.dir}"/>
    </target>
   
    <target name="compile.java" depends="init">
        <!--javac-->
        <javac srcdir="${src.java.dir}" destdir="${target.classes.java.dir}" debug="off">
        <src path="${src.java.dir}"/>
            <include name="**/*.java" />
        </javac>
    </target>
   
    <target name="compile.test" depends="compile.java">
        <!--javac-->
        <javac srcdir="${src.test.dir}" destdir="${target.classes.test.dir}" debug="off">
        <classpath>
            <pathelement location="${target.classes.java.dir}"/>
        </classpath>
        </javac>
    </target>
   
    <target name="compile" depends="compile.java,compile.test"/>
   
    <target name="test" depends="compile">
        <property name="tests" value="*TestCase"/>
        <junit printsummary="yes" haltonerror="yes" haltonfailure="yes" fork="no">
            <formatter type="plain" usefile="false"/>
            <formatter type="xml"/>
            <batchtest todir="${target.report.dir}">
                <fileset dir="${src.test.dir}">
                    <include name="**/${tests}.java"/>
                    <exclude name="**/All*.java"/>
                </fileset>
            </batchtest>
            
            <classpath>
                <pathelement location="target.classes.test.dir"/>
                <pathelement location="target.classes.java.dir"/>
            </classpath>
        </junit>
    </target>
   
    <target name="report" depends="test">
        <mkdir dir="${target.report.dir}/html"/>
        <junitreport todir="${target.report.dir}">
            <fileset dir="${target.report.dir}">
                <include name="TEST-*.xml"/>
            </fileset>
            <report todir="${target.report.dir}/html"/>
        </junitreport>
    </target>
   
    <target name="clean">
        <delete dir="${target.dir}"/>
    </target>
</project>




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2