What is the color and number beside the line number in cobertura report
cobertura, code-coverage, junit, maven, testing
Solution
Those numbers correspond to how many times that line was executed during your tests. Using a simple example:
public class MyClass {
public void methodA(){
System.out.println("Method a");
}
public void methodB(){
System.out.println("Method b");
}
}
With some tests:
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();
}
}
I will get the following report, showing that I constructed my test object twice, and ran each method once:
If I add an `@Ignore` annotation on `testMethodB`, the following report is produced instead, showing that I only constructed my class once, and did not execute lines within `methodB` when testing:
The color is associated with coverage. It will appear red when there is no test that covers that line or branch.
Edit - Regarding your question in the comments, its possible to be missing coverage due to not checking all conditions. For example, consider this method:
public void methodB(final boolean testOne, final boolean testTwo){
if(testOne || testTwo){
System.out.println("Method b");
}
System.out.println("Done");
}
and this test:
@Test
public void testMethodB(){
final MyClass x = new MyClass();
x.methodB(true, false);
x.methodB(true, true);
}
you will end up with the following test report. The reason for this is because although you did execute this line in the test(2 times, in fact), I did not test all permutations of my conditional, therefore, the report will show that I am missing coverage.
Problem
I used mvn cobertura:cobertura to generate this cobertura JUnit test coverage report. Can anyone explain to me what do the numbers beside the line number mean? Thank you.