eclemma 在 java 中的其他条件下显示红色,这导致代码覆盖率较低
eclemma showing red for else conditions in java which leads in getting low percentage of code coverage
在下面的示例代码中 eclemma 突出显示
public class Test {
和 System.out.println("false");
为红色
if (a<15)
为黄色
我得到的代码覆盖率是 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
上看到红线,因为它根本没有经过测试。
您将需要重构您的代码,以便您的测试应涵盖 IF
和 ELSE
。那么只有你的代码覆盖率是100%。
看来您只是在测试 EclEmma 的工作方式,否则您应该编写适当的 Junit 测试来测试代码的代码覆盖率。
您可以查看此 URL 以学习 Junits:http://www.tutorialspoint.com/junit/
在下面的示例代码中 eclemma 突出显示
public class Test {
和System.out.println("false");
为红色if (a<15)
为黄色
我得到的代码覆盖率是 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
上看到红线,因为它根本没有经过测试。
您将需要重构您的代码,以便您的测试应涵盖 IF
和 ELSE
。那么只有你的代码覆盖率是100%。
看来您只是在测试 EclEmma 的工作方式,否则您应该编写适当的 Junit 测试来测试代码的代码覆盖率。
您可以查看此 URL 以学习 Junits:http://www.tutorialspoint.com/junit/