Emma使用过程中遇到的 错误

Posted on 2008-03-18 12:03 Robert Su 阅读(1421) 评论(2)  编辑  收藏
 [report] nothing to do: no runtime coverage data found in any of the data files

Ant与Emma集成的时候总提示这种错误。。。查了下Emma QA说是runtime与metadata


源代码如下,哪位遇到过这种问题。。

<?xml version="1.0"?>
<project name="Toccata Code Quality" default="init" basedir=".">
    

        
    
<property name="junitJar" value="lib/UT/junit.jar"/>
    
<property name="emmaJar"  value="lib/UT/emma.jar"/>
        
    
<!-- 目录配置 -->
    
<property name="base.dir" location="."/>
    
    
<property name="lib.dir" value="./lib"/>
    
<path id="classpath.main">
        
<pathelement location="${build.src}" />
    
</path>
    
<property name="build.dest" value="./src/classes"/>
    
<property name="build.test.bin" value="./src/classes/test"/>

    
    
<property name="build.javadocs" value="./src/UT/doc"/>
    
<property name="build.report" value="./report" />
    
<property name="build.src" value="./src/UT/" />
    
<property name="build.test" value="/src/UT/test" />
    
<property name="build.instrument" location="./instrbin" />
    
<property name="coverage.dir" location="${base.dir}/report/UT/coverage" />

    
<property name="emma.enabled" value="true" />
    
<!--指示需要注入字节码的Java类的路径-->
    
<path id="classpath.main">
        
<pathelement location="${build.dest}" />
    
</path>
    
    
<path id="emma.lib">
            
<pathelement location="lib/UT/emma.jar" />
            
<pathelement location="lib/UT/emma_ant.jar" />
    
</path>
    
    
<taskdef resource="emma_ant.properties" classpathref="emma.lib" />

    
<target name="init">
        
<mkdir dir="${build.instrument}"/>
        
<mkdir dir="report/UT/htmlreport"/>    
        
<mkdir dir="${build.dest}"/>
    
</target>
        
    
<target name="compile" depends="init">
            
<javac destdir="${build.dest}" srcdir="${build.src}/ibm" debug="on">            
                
<classpath>
                    
<pathelement location="${junitJar}"/>
                    
<pathelement location="${emmaJar}"/>
                
</classpath>
            
</javac>
            
<copy todir="${build.dest}">
                
<fileset dir="${build.src}/ibm">
                    
<include name="**/*.class"/>
                    
<exclude name="**/*.java" />
                
</fileset>
            
</copy>
    
</target>
    
    
<target name="compile-test">
        
<mkdir dir="${build.test.bin}" />
                
<javac destdir="${build.test.bin}" debug="on">
                    
<src path="${build.test}" />
                    
<classpath location="${build.dest}">
                        
<pathelement location="${junitJar}"/>
                    
</classpath>
                
</javac>
                
<copy todir="${build.test.bin}">
                    
<fileset dir="${build.test}">
                        
<include name="**/*.class"/>
                        
<exclude name="**/*.java" />
                    
</fileset>
                
</copy>
    
</target>

    
    
    
<!--对编译在路径build.src中的Java类注入字节码, 并且把注入字节码的新Java类存放到路径build.instrument-->
    
<!--覆盖率的元数据存放在路径coverage.dir中-->
    
<!--插入字节码-->
    
    
<target name="instrument" depends="compile">
            
<emma enabled="${emma.enabled}">
                
<instr instrpathref="classpath.main" 
                        destdir
="${build.instrument}" 
                        metadatafile
="${coverage.dir}/metadata.emma" merge="true">
                    
                
</instr>
            
</emma>
            
<copy todir="${build.instrument}">
                    
<fileset dir="${build.dest}">
                        
<include name="**/*.class" />
                        
<exclude name="**/*.java" />
                    
</fileset>
            
</copy>
    
</target>
    
    
<target name="run" depends="compile">
        
<junit fork="true" forkmode="once">
                        
            
<jvmarg value="-Demma.coverage.out.file = ${coverage.dir}/metadata.emma" />
            
<jvmarg value="-Demma.coverage.out.merge = true" />

            
<classpath>
                
<pathelement location="${build.src}/"/>
                
<pathelement location="${junitJar}"/>
                
<pathelement location="${emmaJar}"/>
            
</classpath>
            
            
<formatter type="xml"/>
            
<!-- formatter用于格式化测试输出结果 -->
            
<batchtest haltonfailure="no" todir="report">
                
<fileset dir="${build.test}">
                    
<include name="**/*Test.java"/>
                
</fileset>
            
</batchtest>
        
</junit>
        
<junitreport todir="${build.report}/UT/htmlreport">
            
<fileset dir="./report" id="id">
                
<include name="*.xml"/>
            
</fileset>
            
<report todir="${build.report}/UT/htmlreport" format="frames" Styledir="./report/XSL">
        
</report>
            
        
</junitreport>
        
<echo message="end running junit test"></echo>
    
</target>


    
<target name="coverage_report" depends="instrument,compile">
            
<!--如果属性emma.enabled的值是true,就生成代码覆盖率报告 -->
            
<emma enabled="${emma.enabled}">
                
<report sourcepath="${build.src}/ibm"
                    sort
="+block,+name,+method,+class"
                    metrics
="method:70,block:80,line:80,class:100">
                    
                
                    
<fileset dir="${coverage.dir}">
                        
<include name="*.emma" />
                    
</fileset>
                    
                    
<html outfile="${coverage.dir}/coverage.html" />

                
</report>
            
</emma>
    
</target>
    
    
    
<!-- checkstyle -->
    
<taskdef resource="checkstyletask.properties" classpath="lib/checkstyle/checkstyle-all-4.4.jar" />
    
<target name="checkstyle_report">
        
<checkstyle config="conf/checkstyle/bpf_checks.xml">
            
<fileset dir="src" includes="**/*.java" />
            
<formatter type="plain" />
            
<formatter type="xml" toFile="report/checkstyle/checkstyle_errors.xml" />
        
</checkstyle>
        
<xslt in="report/checkstyle/checkstyle_errors.xml"
            out
="report/checkstyle/checkstyle_report.html" 
            style
="conf/checkstyle/checkstyle-frames.xsl" />
    
</target>

</project>




Feedback

# re: Emma使用过程中遇到的 错误  回复  更多评论   

2008-03-20 10:39 by Robert Su
找到了~
<formatter type="xml"/>
<!-- formatter用于格式化测试输出结果 -->
<batchtest haltonfailure="no" todir="report">
<fileset dir="${build.test}">
<include name="**/*Test.java"/>
</fileset>
</batchtest>
</junit>

错误在<fileset dir="${build.test}">中,路径没有指明清楚

# re: Emma使用过程中遇到的 错误  回复  更多评论   

2014-08-06 09:25 by 我不爱吃鱼丸
没太看明白。。能说详细点么

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 103, comments - 104, trackbacks - 0, articles - 5

Copyright © Robert Su