是否可以在 Eclipse 中使用 Emma 覆盖工具来忽略某些行?

Posted

技术标签:

【中文标题】是否可以在 Eclipse 中使用 Emma 覆盖工具来忽略某些行?【英文标题】:Is it possible to get Emma coverage tool in eclipse to ignore certain lines? 【发布时间】:2012-05-01 01:13:22 【问题描述】:

当我使用单元测试来查看我对每个测试的覆盖率时,我在 Eclipse 中使用了 Emma 覆盖率工具。但是,在抽象类中的类声明中,某些行不会立即被覆盖:

public abstract class ... 

是否有可能让 Emma 覆盖这条线,或者 - 最好 - 忽略它?

谢谢, 阿列克谢蓝。

【问题讨论】:

【参考方案1】:

Emma 已经忽略了无法到达的行,例如类声明。它们没有被标记为已覆盖,但也不计入总行数。

我刚刚用这段代码验证了它:

import junit.framework.TestCase;
public class Test extends TestCase 

    public void testSomething() 

        assertTrue(new Check().check());
       

abstract class AbstractCheck 

    protected abstract boolean check();

class Check extends AbstractCheck 

    @Override
    protected boolean check() 
        return true;
    

它返回 100% 的覆盖率。

【讨论】:

不知道为什么我的并不总是对这样的事情提供 100% 的覆盖率,但我可以学会接受比 100% 少一点的情况,哈哈 :)【参考方案2】:

我有一个抽象类,它有一堆静态方法,但没有别的。类声明未涵盖。我在 JUnit 测试方法中添加了这个:

new AbstractClass() 

;

类声明被覆盖。但是,在 JUnit 测试之外覆盖它是另一回事,因为没有子类。

【讨论】:

以上是关于是否可以在 Eclipse 中使用 Emma 覆盖工具来忽略某些行?的主要内容,如果未能解决你的问题,请参考以下文章

代码覆盖率工具 EMMA

如何在eclipse中安装与使用jacoco

jenkins插件--Cobertura,JaCoCo,Emma-----

是否有将 Emma XML 报告转换为 Cobertura XML 格式的工具?

覆盖率测试工具

jacoco怎么去掉原有的覆盖率