cobertura报告中行号旁边的颜色和数字是什么
What is the color and number beside the line number in cobertura report
我使用 mvn cobertura:cobertura 生成了这个 cobertura JUnit 测试覆盖率报告。任何人都可以向我解释行号旁边的数字是什么意思吗?谢谢。
这些数字对应于该行在测试期间执行的次数。使用一个简单的例子:
public class MyClass {
public void methodA(){
System.out.println("Method a");
}
public void methodB(){
System.out.println("Method b");
}
}
经过一些测试:
public class MyClassTest {
@Test
public void testMethodA(){
final MyClass x = new MyClass();
x.methodA();
}
@Test
public void testMethodB(){
final MyClass x = new MyClass();
x.methodB();
}
}
我会得到以下报告,表明我构建了两次测试对象,运行 每个方法一次:
如果我在 testMethodB
上添加一个 @Ignore
注释,则会生成以下报告,显示我只构建了一次 class,并且没有在 [=] 中执行行16=] 测试时:
颜色与覆盖范围相关。当没有测试覆盖该行或 b运行ch.
时,它将显示为红色
编辑 - 关于您在评论中提出的问题,可能由于未检查所有条件而丢失覆盖范围。例如,考虑这个方法:
public void methodB(final boolean testOne, final boolean testTwo){
if(testOne || testTwo){
System.out.println("Method b");
}
System.out.println("Done");
}
和这个测试:
@Test
public void testMethodB(){
final MyClass x = new MyClass();
x.methodB(true, false);
x.methodB(true, true);
}
您将得到以下测试报告。这样做的原因是因为虽然你在测试中确实执行了这一行(实际上是2次),但我没有测试我的条件的所有排列,因此报告会显示我缺少覆盖。
我使用 mvn cobertura:cobertura 生成了这个 cobertura JUnit 测试覆盖率报告。任何人都可以向我解释行号旁边的数字是什么意思吗?谢谢。
这些数字对应于该行在测试期间执行的次数。使用一个简单的例子:
public class MyClass {
public void methodA(){
System.out.println("Method a");
}
public void methodB(){
System.out.println("Method b");
}
}
经过一些测试:
public class MyClassTest {
@Test
public void testMethodA(){
final MyClass x = new MyClass();
x.methodA();
}
@Test
public void testMethodB(){
final MyClass x = new MyClass();
x.methodB();
}
}
我会得到以下报告,表明我构建了两次测试对象,运行 每个方法一次:
如果我在 testMethodB
上添加一个 @Ignore
注释,则会生成以下报告,显示我只构建了一次 class,并且没有在 [=] 中执行行16=] 测试时:
颜色与覆盖范围相关。当没有测试覆盖该行或 b运行ch.
时,它将显示为红色编辑 - 关于您在评论中提出的问题,可能由于未检查所有条件而丢失覆盖范围。例如,考虑这个方法:
public void methodB(final boolean testOne, final boolean testTwo){
if(testOne || testTwo){
System.out.println("Method b");
}
System.out.println("Done");
}
和这个测试:
@Test
public void testMethodB(){
final MyClass x = new MyClass();
x.methodB(true, false);
x.methodB(true, true);
}
您将得到以下测试报告。这样做的原因是因为虽然你在测试中确实执行了这一行(实际上是2次),但我没有测试我的条件的所有排列,因此报告会显示我缺少覆盖。