]> source.dussan.org Git - sonarqube.git/commitdiff
Fix Clover coverage on new code at project and package levels
authorsimonbrandhof <simon.brandhof@gmail.com>
Wed, 23 Mar 2011 14:31:47 +0000 (15:31 +0100)
committersimonbrandhof <simon.brandhof@gmail.com>
Wed, 23 Mar 2011 14:31:47 +0000 (15:31 +0100)
plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/AbstractCoverageDecorator.java

index d5a6e95c047d3c513008bc96722a84550c67ccf8..da22d828c36af5dbf30597be2ab2d15cbc257e07 100644 (file)
@@ -50,32 +50,36 @@ public abstract class AbstractCoverageDecorator implements Decorator {
   }
 
   protected boolean shouldDecorate(final Resource resource, final DecoratorContext context) {
-    return context.getMeasure(getGeneratedMetric()) == null && !ResourceUtils.isUnitTestClass(resource);
+    return !ResourceUtils.isUnitTestClass(resource);
   }
 
   private void computeMeasure(DecoratorContext context) {
-    Long elements = countElements(context);
-    if (elements != null && elements > 0L) {
-      Long coveredElements = countCoveredElements(context);
-      context.saveMeasure(getGeneratedMetric(), calculateCoverage(coveredElements, elements));
+    if (context.getMeasure(getGeneratedMetric()) == null) {
+      Long elements = countElements(context);
+      if (elements != null && elements > 0L) {
+        Long coveredElements = countCoveredElements(context);
+        context.saveMeasure(getGeneratedMetric(), calculateCoverage(coveredElements, elements));
+      }
     }
   }
 
   private void computeMeasureForNewCode(DecoratorContext context) {
-    Measure measure = new Measure(getGeneratedMetricForNewCode());
-    boolean hasValue = false;
-    /* TODO remove this magic number */
-    for (int periodIndex = 1; periodIndex <= 5; periodIndex++) {
-      Long elements = countElementsForNewCode(context, periodIndex);
-
-      if (elements != null && elements > 0L) {
-        long coveredElements = countCoveredElementsForNewCode(context, periodIndex);
-        measure.setVariation(periodIndex, calculateCoverage(coveredElements, elements));
-        hasValue = true;
+    if (context.getMeasure(getGeneratedMetricForNewCode()) == null) {
+      Measure measure = new Measure(getGeneratedMetricForNewCode());
+      boolean hasValue = false;
+      /* TODO remove this magic number */
+      for (int periodIndex = 1; periodIndex <= 5; periodIndex++) {
+        Long elements = countElementsForNewCode(context, periodIndex);
+
+        if (elements != null && elements > 0L) {
+          long coveredElements = countCoveredElementsForNewCode(context, periodIndex);
+          measure.setVariation(periodIndex, calculateCoverage(coveredElements, elements));
+          hasValue = true;
+        }
+      }
+      if (hasValue) {
+        context.saveMeasure(measure);
       }
-    }
-    if (hasValue) {
-      context.saveMeasure(measure);
     }
   }