You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@edgent.apache.org by ca...@apache.org on 2016/08/03 23:29:41 UTC

[2/4] incubator-quarks git commit: Add junit and coverage report

Add junit and coverage report


Project: http://git-wip-us.apache.org/repos/asf/incubator-quarks/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quarks/commit/cc668689
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quarks/tree/cc668689
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quarks/diff/cc668689

Branch: refs/heads/master
Commit: cc668689164683086fbdd7a904a51191d2f0c118
Parents: 62b5277
Author: Cazen Lee <ca...@apache.org>
Authored: Fri Jul 29 08:35:24 2016 +0000
Committer: Cazen Lee <ca...@apache.org>
Committed: Tue Aug 2 00:29:44 2016 +0000

----------------------------------------------------------------------
 build.gradle             | 156 +++++++++++++++++++++++++++++++++++-------
 test/fvtiot/build.gradle |   2 +-
 2 files changed, 134 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/cc668689/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 89e8a84..e409202 100644
--- a/build.gradle
+++ b/build.gradle
@@ -15,7 +15,6 @@
 allprojects {
   apply plugin: 'idea'
   apply plugin: 'eclipse'
-  apply plugin: "jacoco"
   apply plugin: 'java'
 
   repositories {
@@ -45,17 +44,17 @@ ext {
   target_javadoc_dir = "${ext.target_dir}/docs/javadoc"
   target_report_dir = "${ext.target_dir}/reports"
 }
+
 /* Configure subprojects */
 subprojects {
+
+  apply plugin: "jacoco"
+
   if (buildFile.isFile() && !buildFile.exists()) {
     configurations.create('default')
     return
   }
 
-  configurations {
-    junitLibs
-  }
-
   if (["javax.websocket-client", "javax.websocket-server", "edgent.javax.websocket"].contains(project.name)) {
     archivesBaseName = "${project.name}"
   } else {
@@ -66,8 +65,6 @@ subprojects {
   dependencies {
     testCompile 'junit:junit:4.10'
     testRuntime 'org.slf4j:slf4j-jdk14:1.7.12'
-    junitLibs 'org.apache.ant:ant-junit:1.9.5'
-    junitLibs 'org.apache.ant:ant-junit4:1.9.5'
   }
 
   ext.addCompileTestDependencies = { String... deps ->
@@ -99,6 +96,9 @@ subprojects {
   }
 
   test {
+    if(it.path == ":test:fvtiot" ||  it.path == ":providers:development") {
+      dependsOn ":console:servlets"
+    }
     include '**/*Test.class'
     exclude '**/*Mqtt*'
 
@@ -107,20 +107,9 @@ subprojects {
     testLogging {
       exceptionFormat 'full'
     }
-
-    mkdir 'test-result'
-    afterSuite {
-      if (!it.parent) {
-        ant.taskdef(name: 'junitreport',
-                classname: 'org.apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator',
-                classpath: configurations.junitLibs.asPath)
-        ant.junitreport(todir: './test-result') {
-          fileset(dir: './test-result') {
-            include(name: '*.xml')
-          }
-          report(format: 'frames', todir: "${target_report_dir}/junit")
-        }
-      }
+    reports {
+      junitXml.enabled = true
+      html.enabled = true
     }
   }
 
@@ -139,6 +128,9 @@ subprojects {
     }
   }
   jar {
+    if(it.path == ":test:fvtiot" ||  it.path == ":providers:development") {
+      dependsOn ":console:servlets"
+    }
     configure jarOptions
   }
 
@@ -180,7 +172,126 @@ task copyScript {
   }
 }
 
+//Create Junit Report
+configurations {
+  junitLibs
+}
+dependencies {
+  junitLibs 'org.apache.ant:ant-junit:1.9.5'
+  junitLibs 'org.apache.ant:ant-junit4:1.9.5'
+  junitLibs 'org.jacoco:org.jacoco.ant:0.7.5.201505241946'
+}
+
+task createJunitReport << {
+  description = 'Generates a Junit report from all subprojects'
+
+  ant.taskdef(name: 'junitreport',
+          classname: 'org.apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator',
+          classpath: configurations.junitLibs.asPath)
+  ant.junitreport(todir: './') {
+    fileset(dir: './') {
+      include(name: '**/test-results/TEST-*.xml')
+    }
+    report(format: 'frames', todir: "${target_report_dir}/junit")
+  }
+  ant.move(file: "TESTS-TestSuites.xml", tofile: "${target_report_dir}/TESTS-TestSuites.xml")
+}
+build.finalizedBy createJunitReport
+
+task jacocoTestReport {
+  description = 'Generates a coverage report from all subprojects'
+
+  dependsOn(subprojects*.test, subprojects*.jar)
+
+  FileCollection executionData = files()
+
+  subprojects.findAll { subproject ->
+    subproject.pluginManager.hasPlugin('java') && subproject.pluginManager.hasPlugin('jacoco')
+  }.each { subproject ->
+    executionData += subproject.tasks.jacocoTestReport.executionData
+  }
+
+  executionData = files(executionData.findAll {
+    it.exists()
+  })
+  ant.taskdef(name: 'jacocoReport', classname: 'org.jacoco.ant.ReportTask',
+          classpath: configurations.junitLibs.asPath)
+  ant.jacocoReport {
+    executiondata {
+      executionData.addToAntBuilder(ant, 'resources')
+    }
+
+    structure(name: project.name) {
+      group(name: "Edgent API") {
+        classfiles {
+          fileset(dir: "${target_java8_dir}", includes: "edgent.api.*.jar")
+        }
+        sourcefiles {
+          fileset(dir: "./api/function/src/main/java", includes: "**/*.java")
+          fileset(dir: "./api/execution/src/main/java", includes: "**/*.java")
+          fileset(dir: "./api/oplet/src/main/java", includes: "**/*.java")
+          fileset(dir: "./api/graph/src/main/java", includes: "**/*.java")
+          fileset(dir: "./api/topology/src/main/java", includes: "**/*.java")
+        }
+      }
+      group(name: "Edgent SPI") {
+        classfiles {
+          fileset(dir: "${target_java8_dir}", includes: "edgent.spi.*.jar")
+        }
+        sourcefiles {
+          fileset(dir: "./spi/graph/src/main/java", includes: "**/*.java")
+          fileset(dir: "./spi/topology/src/main/java", includes: "**/*.java")
+        }
+      }
+      group(name: "Edgent Runtime") {
+        classfiles {
+          fileset(dir: "${target_java8_dir}", includes: "edgent.runtime.*.jar")
+        }
+        sourcefiles {
+          fileset(dir: "./runtime/etiao/src/main/java", includes: "**/*.java")
+          fileset(dir: "./runtime/jmxcontrol/src/main/java", includes: "**/*.java")
+        }
+      }
+      group(name: "Edgent Utilities") {
+        classfiles {
+          fileset(dir: "${target_java8_dir}", includes: "edgent.utils.*.jar")
+        }
+        sourcefiles {
+          fileset(dir: "./utils/metrics/src/main/java", includes: "**/*.java")
+          fileset(dir: "./utils/streamscope/src/main/java", includes: "**/*.java")
+        }
+      }
+      group(name: "Edgent Utilities") {
+        classfiles {
+          fileset(dir: "${target_java8_dir}", includes: "edgent.connectors.*.jar")
+        }
+        sourcefiles {
+          fileset(dir: "./connectors/common/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/command/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/csv/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/file/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/iot/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/iotp/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/jdbc/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/kafka/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/mqtt/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/http/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/wsclient/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/wsclient-javax.websocket/src/main/java", includes: "**/*.java")
+        }
+      }
+    }
+    html(destdir: "${target_report_dir}/coverage/")
+    xml(destfile: "${target_report_dir}/coverage/jacoco-sessions.xml")
+  }
+}
+build.finalizedBy jacocoTestReport
+
+//Create JavaDoc
 task aggregateJavadoc(type: Javadoc) {
+  description = 'Generates a Javadoc from all subprojects'
+
+  dependsOn(subprojects*.test, subprojects*.jar)
   destinationDir file("$rootProject.ext.target_javadoc_dir")
   options.addStringOption('Xdoclint:none', '-quiet')
   configure(options) {
@@ -207,8 +318,7 @@ task aggregateJavadoc(type: Javadoc) {
           { project -> project.sourceSets.main.compileClasspath }
   )
 }
-
-build.dependsOn aggregateJavadoc
+build.finalizedBy aggregateJavadoc
 
 task wrapper(type: Wrapper) {
   jarFile = rootProject.file('.gradle-wrapper/gradle-wrapper.jar')

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/cc668689/test/fvtiot/build.gradle
----------------------------------------------------------------------
diff --git a/test/fvtiot/build.gradle b/test/fvtiot/build.gradle
index 68a5682..262552c 100644
--- a/test/fvtiot/build.gradle
+++ b/test/fvtiot/build.gradle
@@ -18,4 +18,4 @@ dependencies {
   compile ext_classpath
 }
 
-addCompileTestDependencies ':apps:iot'
+addCompileTestDependencies ':apps:iot'
\ No newline at end of file