Ant <;仪器>;蚂蚁任务

Ant <;仪器>;蚂蚁任务,ant,junit,code-coverage,emma,Ant,Junit,Code Coverage,Emma,我的ant脚本中有一个emma执行目标,它捕获了项目的覆盖范围。下面是来自emma target的ant脚本片段,在我添加了一个与现有项目具有相同包名(com.kuleep.project.*)的新项目之前,它工作得很好 <emma enabled="${emma.enabled}" > <instr instrpathref="test.run.classpath" destdir="${kulproj.out.instr.d

我的ant脚本中有一个emma执行目标,它捕获了项目的覆盖范围。下面是来自emma target的ant脚本片段,在我添加了一个与现有项目具有相同包名(com.kuleep.project.*)的新项目之前,它工作得很好

    <emma enabled="${emma.enabled}" >
        <instr instrpathref="test.run.classpath"
             destdir="${kulproj.out.instr.dir}" 
             metadatafile="${kulproj.coverage.dir}/metadata.em"
             merge="true">
            <filter includes="com.kuleep.project.*" />
            <filter excludes="com.kuldeep.project.test.*" />
        </instr>
    </emma>

添加此新项目后,Emma Coverage报告仅显示此新项目包和类的覆盖范围。这意味着我的旧项目的插入指令的类被这个新项目的插入指令的类覆盖,因为两个项目中的包名称相同

如果我不想更改这两个项目中的包名,那么避免这种情况并为这两个项目生成检测类的最佳方法是什么


注意:如果需要更多细节来回答这个问题,请发表评论。

两个项目的类名是否重叠?如中所示,项目A是否有
com.kuleep.project.Foo
,项目B是否也有该类?否,两个项目中的类名都不同。它们没有重叠,可能emma没有检测这两组类,或者在测试运行时,未检测的类首先出现在类路径上。您的项目中的jar/类是否都在测试中,另一个在
test.run.classpath
path中?是的,它们都在test.run.classpath中。在传递给JUnit的类路径中,${kulproj.out.instr.dir}是否出现在${test.run.classpath}之前?