SAMZA-1355 : Enable standalone integration tests conditionally in build.
authorShanthoosh Venkataraman <svenkataraman@linkedin.com>
Wed, 16 Aug 2017 23:25:49 +0000 (16:25 -0700)
committerXinyu Liu <xiliu@xiliu-ld.linkedin.biz>
Wed, 16 Aug 2017 23:25:49 +0000 (16:25 -0700)
It's run only when includeSamzaTest gradle project property is set.

Author: Shanthoosh Venkataraman <svenkataraman@linkedin.com>

Reviewers: Xinyu Liu <xinyu@apache.org>

Closes #237 from shanthoosh/disable_samza_test_build_with_a_flag

README.md
bin/check-all.sh
docs/contribute/tests.md
settings.gradle

index 4526ae8..cab1826 100644 (file)
--- a/README.md
+++ b/README.md
@@ -34,7 +34,7 @@ Samza builds with [Scala](http://www.scala-lang.org/) 2.10 or 2.11 and [YARN](ht
 
 ### Testing Samza
 
-To run all tests:
+To run all unit tests:
 
     ./gradlew clean test
 
index 2f9f03c..ceb1e99 100755 (executable)
@@ -81,7 +81,7 @@ do
     for yarn_version in "${YARNs[@]}"
     do
       echo "------------- Running check task against JDK${jdk_number}/Scala ${scala_version}/YARN ${yarn_version}"
-      ${gradle_file} -PscalaVersion=${scala_version} -PyarnVersion=${yarn_version} -Dorg.gradle.java.home=${!i} clean check $@
+      ${gradle_file} -PscalaVersion=${scala_version} -PyarnVersion=${yarn_version} -Dorg.gradle.java.home=${!i} -PrunIntegrationTests clean check $@
       echo "------------- Finished running check task against JDK${jdk_number}/Scala ${scala_version}/YARN ${yarn_version}"
     done
   done
index 9fe728c..048e3be 100644 (file)
@@ -25,7 +25,7 @@ Samza's unit tests are written on top of [JUnit](http://junit.org/), and license
 
 To run all tests, and license checks:
 
-    ./gradlew clean check
+    ./gradlew clean check -PrunIntegrationTests
 
 To run a single test:
 
index a4eba94..603cd35 100644 (file)
@@ -46,3 +46,20 @@ rootProject.children.each {
     it.name = it.name + "_" + scalaVersion
   }
 }
+
+/**
+ * Skips execution of all integration tests in project 'samza-test'.
+ * To run integration tests in samza-test: './gradlew clean build -PrunIntegrationTests'
+ */
+gradle.taskGraph.whenReady { taskGraph ->
+  taskGraph.getAllTasks().each { task ->
+    def project = task.getProject()
+    task.onlyIf {
+      /**
+       * Behaves as pass through filter for all tasks when `runIntegrationTests` property is turned on.
+       * Filters 'test' task of 'samza-test' project otherwise.
+       */
+      project.hasProperty("runIntegrationTests") || !(project.getName().contains("samza-test") && task.getName() == "test")
+    }
+  }
+}