首页前端开发HTMLAnt执行JUnit测试并生成报告

Ant执行JUnit测试并生成报告

时间2024-01-25 11:48:25发布访客分类HTML浏览196
导读:收集整理的这篇文章主要介绍了html5教程-Ant执行JUnit测试并生成报告,觉得挺不错的,现在分享给大家,也给大家做个参考。小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。 下面这个XMl文件是...
收集整理的这篇文章主要介绍了html5教程-Ant执行JUnit测试并生成报告,觉得挺不错的,现在分享给大家,也给大家做个参考。小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。

下面这个XMl文件是我修改后能够成功运行JUnIT测试并且生成测试报告的ant执行文件。先列出代码作为参考,再介绍一些我写该文件过程中遇到的问题并做一些分析,希望对后来学习者有所帮助。

[htML] 
?xml version="1.0" encoding="UTF-8"?>  
PRoject name="mathtest" default="test" basedir=".">  
    proPErty name="src" value="src"/>  
    property name="dest" value="bin"/>  
    property name="lib" value="lib"/>  
    property name="report" value="report"/>  
    path id="class.path">  
        fileset dir="${ lib} ">  
            include name="**/*.jar"/>  
        /fileset>  
        pathelement path="${ dest} " />  
    /path>  
     
    target name="init">  
        mkdir dir="${ dest} "/>  
        mkdir dir="${ report} "/>  
    /target>  
     
    target name="compile" depends="init">  
        javac srcdir="${ src} " destdir="${ dest} ">  
            classpath refid="class.path" />  
        /javac>  
    /target>  
 
    target name="test" depends="compile">  
         
        junit printsummary="true" haltonfailure="no" showoutput="true">  
            classpath refid="class.path">  
            /classpath>  
            formatter type="xml" usefile="true"/>  
            batchtest fork="yes" todir="${ report} ">  
                fileset dir="${ dest} ">  
                    include name="**/*Test.*"/>  
                /fileset>  
            /batchtest>  
        /junit>  
                 
        junitreport todir="${ report} ">   
            fileset dir="${ report} ">   
                include name="TEST-*.xml"/>   
            /fileset>   
            report format="frames" todir="${ report} /html"/>   
        /junitreport>   
         
    /target>  
 
/project>  

1. 如果要引用外部的jar包,该怎么办?
测试过程中肯定会要用到外部包,如果是JUnit测试则需要JUnit的jar包,如果是selenium测试则需要selenium的包。可以将需要的包放到指定的文件夹中,然后定义path来包括里面的jar文件。在编译以及运行或者测试需要引用这些包的地方,通过定义环境变量属性classpath并引用定义的path来解决。多个jar包引用为了简单,可以用正则表达式来写。如果有一些需要引用的文件或者包在其他地方,也可以pathelement来单独指定。


2. 测试过程中的输出日志如何显示出来?

可以用junit的属性showoutput来设置


3. 如何对多个测试类执行junit测试?

可以通过正则表达式来匹配以定义所需要执行测试的文件。例如上面的代码对编译后生成的可执行文件路径下的所有名字包含*Test.*测试。这里面采用**/*Test.*可以执行dir目录下的所有符合条件的文件,包括其子目录中的。


4. 源文件及编译后的文件如果都希望以包的形式组织,这样文件分散在不同的文件夹怎么办?

只需要指定源文件和编译后的目标文件的根目录,ant会自动将源文件目录下的所有文件编译并在目标文件中以相同方式生成class文件。所以src和dest都没有必要具体指定具体的文件的详细相对位置。例如上面代码中,其实源文件在src/org/twenz下,它会自动在dest/org/twenz中生成class文件


5. junitreport在Eclipse中为什么ant后出现如下错误?

[plain] 
[junitreport] Loading stylesheet jar:file:/E:/Program%20Files/eclipse/plugins/org.apache.ant_1.8.3.v20120321-1730/lib/ant-junit.jar!/org/apache/tools/ant/tasKDEfs/optional/junit/xsl/junit-frames.xsl 
[junitreport] : Error! 非 static Java 函数“replace”的第一个自变量不是有效的对象参考。 
[junitreport] : Error! 无法将数据类型“void”转换成“reference”。 
[junitreport] : Fatal Error! 无法编译样式表  www.2cto.COM
[junitreport] Failed to process E:/users/zhatan/workspace/JunitTestProject/report/TESTS-testSuites.xml 
 可以直接用命令行ant就不会有这种错误


6. 为什么junitreport命令后Test-*.xml就两行内容,生成的html文件中案例数为0?

可能是因为junit命令中没有将结果给导出来,例如上面文件中语句 batchtest fork="yes" todir="${ report} "> 则通过todir来将结果生成到指定目录中去。同时需要设置usefile="true"来得到相应的Test-*.xml文件。如果没有正确生成这些文件的话,之后的report出来的html文件中用例就是0了。

 
 

下面这个xml文件是我修改后能够成功运行JUnit测试并且生成测试报告的ant执行文件。先列出代码作为参考,再介绍一些我写该文件过程中遇到的问题并做一些分析,希望对后来学习者有所帮助。

[html] 
?xml version="1.0" encoding="UTF-8"?>  
project name="MathTest" default="test" basedir=".">  
    property name="src" value="src"/>  
    property name="dest" value="bin"/>  
    property name="lib" value="lib"/>  
    property name="report" value="report"/>  
    path id="class.path">  
        fileset dir="${ lib} ">  
            include name="**/*.jar"/>  
        /fileset>  
        pathelement path="${ dest} " />  
    /path>  
     
    target name="init">  
        mkdir dir="${ dest} "/>  
        mkdir dir="${ report} "/>  
    /target>  
     
    target name="compile" depends="init">  
        javac srcdir="${ src} " destdir="${ dest} ">  
            classpath refid="class.path" />  
        /javac>  
    /target>  
 
    target name="test" depends="compile">  
         
        junit printsummary="true" haltonfailure="no" showoutput="true">  
            classpath refid="class.path">  
            /classpath>  
            formatter type="xml" usefile="true"/>  
            batchtest fork="yes" todir="${ report} ">  
                fileset dir="${ dest} ">  
                    include name="**/*Test.*"/>  
                /fileset>  
            /batchtest>  
        /junit>  
                 
        junitreport todir="${ report} ">   
            fileset dir="${ report} ">   
                include name="TEST-*.xml"/>   
            /fileset>   
            report format="frames" todir="${ report} /html"/>   
        /junitreport>   
         
    /target>  
 
/project>  

1. 如果要引用外部的jar包,该怎么办?
测试过程中肯定会要用到外部包,如果是JUnit测试则需要JUnit的jar包,如果是selenium测试则需要selenium的包。可以将需要的包放到指定的文件夹中,然后定义path来包括里面的jar文件。在编译以及运行或者测试需要引用这些包的地方,通过定义环境变量属性classpath并引用定义的path来解决。多个jar包引用为了简单,可以用正则表达式来写。如果有一些需要引用的文件或者包在其他地方,也可以pathelement来单独指定。


2. 测试过程中的输出日志如何显示出来?

可以用junit的属性showoutput来设置


3. 如何对多个测试类执行junit测试?

可以通过正则表达式来匹配以定义所需要执行测试的文件。例如上面的代码对编译后生成的可执行文件路径下的所有名字包含*Test.*测试。这里面采用**/*Test.*可以执行dir目录下的所有符合条件的文件,包括其子目录中的。


4. 源文件及编译后的文件如果都希望以包的形式组织,这样文件分散在不同的文件夹怎么办?

只需要指定源文件和编译后的目标文件的根目录,ant会自动将源文件目录下的所有文件编译并在目标文件中以相同方式生成class文件。所以src和dest都没有必要具体指定具体的文件的详细相对位置。例如上面代码中,其实源文件在src/org/twenz下,它会自动在dest/org/twenz中生成class文件


5. junitreport在Eclipse中为什么ant后出现如下错误?

[plain] 
[junitreport] Loading stylesheet jar:file:/E:/Program%20Files/eclipse/plugins/org.apache.ant_1.8.3.v20120321-1730/lib/ant-junit.jar!/org/apache/tools/ant/taskdefs/optional/junit/xsl/junit-frames.xsl 
[junitreport] : Error! 非 static Java 函数“replace”的第一个自变量不是有效的对象参考。 
[junitreport] : Error! 无法将数据类型“void”转换成“reference”。 
[junitreport] : Fatal Error! 无法编译样式表  www.2cto.com
[junitreport] Failed to process E:/users/zhatan/workspace/JunitTestProject/report/TESTS-TestSuites.xml 
 可以直接用命令行ant就不会有这种错误


6. 为什么junitreport命令后Test-*.xml就两行内容,生成的html文件中案例数为0?

可能是因为junit命令中没有将结果给导出来,例如上面文件中语句 batchtest fork="yes" todir="${ report} "> 则通过todir来将结果生成到指定目录中去。同时需要设置usefile="true"来得到相应的Test-*.xml文件。如果没有正确生成这些文件的话,之后的report出来的html文件中用例就是0了。

 
 

觉得可用,就经常来吧! 欢迎评论哦! html5教程,巧夺天工,精雕玉琢。小宝典献丑了!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

ClassdivHTMLpost-format-galleryProp

若转载请注明出处: Ant执行JUnit测试并生成报告
本文地址: https://pptw.com/jishu/586481.html
万能对象拷贝工具 支持不同数据类型 基于HTML5实现的超酷摄像头(HTML5 webcam)拍照功能 - photobooth.js

游客 回复需填写必要信息