eclemma 在 java 中的其他条件下显示红色,这导致代码覆盖率较低

eclemma showing red for else conditions in java which leads in getting low percentage of code coverage

在下面的示例代码中 eclemma 突出显示

我得到的代码覆盖率是 62%。埃克莱玛报告:

Missed Instructions Cov. 62% ,
Missed Branches Cov. 50% ,
Missed 2 , 
Cxty 3 ,
Missed 2 ,
Lines 7 ,
Missed 1,
Methods 2 ,
Missed 0 ,
Classes 1

请大神解释一下,代码覆盖率怎么只有62%?

package sanityReady;
public class Test {
    public static void main(String[] args) {
        int a=10;
        if (a<15)
        {
            System.out.println("true");
        }
        else
        {
            System.out.println("false");
        }
    }
}

EclEmma 通常会尝试执行您的测试来计算代码覆盖率。 你的测试应该涵盖所有写在正常 java class.

中的条件

通常,当您一起编写 IF-ELSE 时,EclEmma 期望编写 2 个测试来测试这两个条件,如果您的测试仅测试 IF 或 ELSE,那么它将 IF-ELSE 标记为黄色,表明它已部分测试!

在上面的例子中,你的 a=10 总是小于 15,所以你的测试只测试 IF 部分。因此,你在 else 上看到红线,因为它根本没有经过测试。

您将需要重构您的代码,以便您的测试应涵盖 IFELSE。那么只有你的代码覆盖率是100%。

看来您只是在测试 EclEmma 的工作方式,否则您应该编写适当的 Junit 测试来测试代码的代码覆盖率。

您可以查看此 URL 以学习 Junits:http://www.tutorialspoint.com/junit/