You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2019/01/03 09:54:30 UTC
[camel] branch camel-2.x updated: CAMEL-13001: camel maven plugin
route coverage now has option to set threshold in percentage when to fail.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch camel-2.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-2.x by this push:
new aa5da7e CAMEL-13001: camel maven plugin route coverage now has option to set threshold in percentage when to fail.
aa5da7e is described below
commit aa5da7e09f09dc3f7a0bee98c2d39792833d85fd
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Jan 3 10:53:19 2019 +0100
CAMEL-13001: camel maven plugin route coverage now has option to set threshold in percentage when to fail.
---
examples/camel-example-spring-boot/pom.xml | 3 ++-
.../org/apache/camel/maven/RouteCoverageMojo.java | 31 ++++++++++++++++------
2 files changed, 25 insertions(+), 9 deletions(-)
diff --git a/examples/camel-example-spring-boot/pom.xml b/examples/camel-example-spring-boot/pom.xml
index 3e21f3b..c7f633b 100644
--- a/examples/camel-example-spring-boot/pom.xml
+++ b/examples/camel-example-spring-boot/pom.xml
@@ -126,10 +126,11 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-maven-plugin</artifactId>
<version>${project.version}</version>
- <!-- allows to fail if not all routes are fully covered during testing -->
+ <!-- allows to fail if not all routes are covered during testing -->
<!--
<configuration>
<failOnError>true</failOnError>
+ <coverageThreshold>90</coverageThreshold>
</configuration>
-->
</plugin>
diff --git a/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RouteCoverageMojo.java b/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RouteCoverageMojo.java
index aca847b..0cb6c00 100644
--- a/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RouteCoverageMojo.java
+++ b/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RouteCoverageMojo.java
@@ -68,7 +68,10 @@ public class RouteCoverageMojo extends AbstractExecMojo {
protected MavenProject project;
/**
- * Whether to fail if a route was not fully covered
+ * Whether to fail if a route was not fully covered.
+ *
+ * Note the option coverageThreshold can be used
+ * to set a minimum coverage threshold in percentage.
*
* @parameter property="camel.failOnError"
* default-value="false"
@@ -76,6 +79,14 @@ public class RouteCoverageMojo extends AbstractExecMojo {
private boolean failOnError;
/**
+ * The minimum route coverage in percent when using failOnError.
+ *
+ * @parameter property="camel.coverageThreshold"
+ * default-value="100"
+ */
+ private byte coverageThreshold = 100;
+
+ /**
* Whether to include test source code
*
* @parameter property="camel.includeTest"
@@ -327,8 +338,8 @@ public class RouteCoverageMojo extends AbstractExecMojo {
sw.println("Route:\t" + routeId);
}
sw.println();
- sw.println(String.format("%8s %8s %s", "Line #", "Count", "Route"));
- sw.println(String.format("%8s %8s %s", "------", "-----", "-----"));
+ sw.println(String.format("%8s %8s %s", "Line #", "Count", "Route"));
+ sw.println(String.format("%8s %8s %s", "------", "-----", "-----"));
int covered = 0;
for (RouteCoverageNode node : model) {
@@ -336,18 +347,22 @@ public class RouteCoverageMojo extends AbstractExecMojo {
covered++;
}
String pad = padString(node.getLevel());
- sw.println(String.format("%8s %8s %s", node.getLineNumber(), node.getCount(), pad + node.getName()));
+ sw.println(String.format("%8s %8s %s", node.getLineNumber(), node.getCount(), pad + node.getName()));
}
- if (covered != model.size()) {
+ // calculate percentage of route coverage (must use double to have decimals)
+ double percentage = ((double) covered / (double) model.size()) * 100;
+
+ boolean success = true;
+ if (covered != model.size() && percentage < coverageThreshold) {
// okay here is a route that was not fully covered
notCovered.incrementAndGet();
+ success = false;
}
- // calculate percentage of route coverage (must use double to have decimals)
- double percentage = ((double) covered / (double) model.size()) * 100;
sw.println();
- sw.println("Coverage: " + covered + " out of " + model.size() + " (" + String.format("%.1f", percentage) + "%)");
+ sw.println("Coverage: " + covered + " out of " + model.size() + " (" + String.format("%.1f", percentage) + "% / threshold " + coverageThreshold + ".0%)");
+ sw.println("Status: " + (success ? "Success" : "Failed"));
sw.println();
return bos.toString();