diff --git a/api/build.gradle b/api/build.gradle
index 8d2967b..3834f05 100644
--- a/api/build.gradle
+++ b/api/build.gradle
@@ -1,8 +1,9 @@
-description = 'OpenCensus: API'
+description = 'OpenCensus API'
 
 dependencies {
     compile libraries.grpc_context,
             libraries.guava
+
     compileOnly libraries.auto_value
 
     signature "org.codehaus.mojo.signature:java16:+@signature"
diff --git a/core/build.gradle b/core/build.gradle
index 333dea0..1d2266c 100644
--- a/core/build.gradle
+++ b/core/build.gradle
@@ -8,8 +8,12 @@
     compile project(':opencensus-api'),
             libraries.grpc_context,
             libraries.guava
+
     compileOnly libraries.auto_value
 
+    testCompile project(':opencensus-api'),
+            project(':opencensus-testing')
+
     signature "org.codehaus.mojo.signature:java16:+@signature"
 }
 
diff --git a/core_impl/build.gradle b/core_impl/build.gradle
index 73593aa..44e0242 100644
--- a/core_impl/build.gradle
+++ b/core_impl/build.gradle
@@ -6,7 +6,10 @@
             project(':opencensus-impl-core'),
             libraries.guava
 
-    testCompile project(':core')
+    testCompile project(':core'),
+            project(':opencensus-api'),
+            project(':opencensus-impl-core'),
+            project(':opencensus-testing')
 
     signature "org.codehaus.mojo.signature:java16:+@signature"
 }
diff --git a/core_impl/src/test/java/com/google/instrumentation/stats/MeasurementDescriptorToViewMapTest.java b/core_impl/src/test/java/com/google/instrumentation/stats/MeasurementDescriptorToViewMapTest.java
index 1b4bdf7..86f344b 100644
--- a/core_impl/src/test/java/com/google/instrumentation/stats/MeasurementDescriptorToViewMapTest.java
+++ b/core_impl/src/test/java/com/google/instrumentation/stats/MeasurementDescriptorToViewMapTest.java
@@ -18,7 +18,7 @@
 
 import io.opencensus.common.Function;
 import io.opencensus.common.Timestamp;
-import io.opencensus.internal.TestClock;
+import io.opencensus.testing.common.TestClock;
 import com.google.instrumentation.stats.MeasurementDescriptor.BasicUnit;
 import com.google.instrumentation.stats.MeasurementDescriptor.MeasurementUnit;
 import com.google.instrumentation.stats.View.DistributionView;
diff --git a/core_impl/src/test/java/com/google/instrumentation/stats/StatsContextFactoryTest.java b/core_impl/src/test/java/com/google/instrumentation/stats/StatsContextFactoryTest.java
index 1bc7cfd..e2ca9be 100644
--- a/core_impl/src/test/java/com/google/instrumentation/stats/StatsContextFactoryTest.java
+++ b/core_impl/src/test/java/com/google/instrumentation/stats/StatsContextFactoryTest.java
@@ -17,7 +17,7 @@
 
 import io.opencensus.common.NonThrowingCloseable;
 import io.opencensus.internal.SimpleEventQueue;
-import io.opencensus.internal.TestClock;
+import io.opencensus.testing.common.TestClock;
 import io.opencensus.internal.VarInt;
 import io.grpc.Context;
 import java.io.ByteArrayInputStream;
diff --git a/core_impl/src/test/java/com/google/instrumentation/stats/StatsContextTest.java b/core_impl/src/test/java/com/google/instrumentation/stats/StatsContextTest.java
index 783506b..c30750c 100644
--- a/core_impl/src/test/java/com/google/instrumentation/stats/StatsContextTest.java
+++ b/core_impl/src/test/java/com/google/instrumentation/stats/StatsContextTest.java
@@ -20,7 +20,7 @@
 import com.google.common.testing.EqualsTester;
 import io.opencensus.common.Function;
 import io.opencensus.internal.SimpleEventQueue;
-import io.opencensus.internal.TestClock;
+import io.opencensus.testing.common.TestClock;
 import io.opencensus.internal.VarInt;
 import com.google.instrumentation.stats.View.DistributionView;
 import com.google.instrumentation.stats.View.IntervalView;
diff --git a/core_impl/src/test/java/com/google/instrumentation/stats/StatsManagerImplTest.java b/core_impl/src/test/java/com/google/instrumentation/stats/StatsManagerImplTest.java
index a5f7421..7297540 100644
--- a/core_impl/src/test/java/com/google/instrumentation/stats/StatsManagerImplTest.java
+++ b/core_impl/src/test/java/com/google/instrumentation/stats/StatsManagerImplTest.java
@@ -19,7 +19,7 @@
 import io.opencensus.common.Duration;
 import io.opencensus.internal.SimpleEventQueue;
 import io.opencensus.common.Timestamp;
-import io.opencensus.internal.TestClock;
+import io.opencensus.testing.common.TestClock;
 import com.google.instrumentation.stats.MeasurementDescriptor.BasicUnit;
 import com.google.instrumentation.stats.MeasurementDescriptor.MeasurementUnit;
 import com.google.instrumentation.stats.View.DistributionView;
diff --git a/core_impl_android/build.gradle b/core_impl_android/build.gradle
index 4d83058..d5dc088 100644
--- a/core_impl_android/build.gradle
+++ b/core_impl_android/build.gradle
@@ -4,5 +4,11 @@
     compile project(':core'),
             project(':core_impl')
 
+    testCompile project(':core'),
+            project(':core_impl'),
+            project(':opencensus-api'),
+            project(':opencensus-impl-core'),
+            project(':opencensus-impl-lite')
+
     signature "net.sf.androidscents.signature:android-api-level-14:+@signature"
 }
diff --git a/core_impl_java/build.gradle b/core_impl_java/build.gradle
index 4c17d2b..de9b063 100644
--- a/core_impl_java/build.gradle
+++ b/core_impl_java/build.gradle
@@ -12,5 +12,11 @@
             project(':core_impl'),
             project(':opencensus-impl')
 
+    testCompile project(':core'),
+            project(':core_impl'),
+            project(':opencensus-api'),
+            project(':opencensus-impl-core'),
+            project(':opencensus-impl')
+
     signature "org.codehaus.mojo.signature:java17:+@signature"
 }
\ No newline at end of file
diff --git a/examples/build.gradle b/examples/build.gradle
index 480374a..9439bba 100644
--- a/examples/build.gradle
+++ b/examples/build.gradle
@@ -8,7 +8,9 @@
 dependencies {
     compile project(':core'),
             project(':core_impl'),
-            project(':core_impl_java')
+            project(':core_impl_java'),
+            project(':opencensus-api'),
+            project(':opencensus-impl')
 }
 
 // Provide convenience executables for trying out the examples.
diff --git a/impl/build.gradle b/impl/build.gradle
index be4e959..e885204 100644
--- a/impl/build.gradle
+++ b/impl/build.gradle
@@ -12,6 +12,9 @@
             project(':opencensus-impl-core'),
             libraries.disruptor
 
+    testCompile project(':opencensus-api'),
+            project(':opencensus-impl-core')
+
     signature "org.codehaus.mojo.signature:java17:+@signature"
 }
 
diff --git a/impl_core/build.gradle b/impl_core/build.gradle
index 70de8aa..4458d53 100644
--- a/impl_core/build.gradle
+++ b/impl_core/build.gradle
@@ -6,6 +6,9 @@
 
     compileOnly libraries.auto_value
 
+    testCompile project(':opencensus-api'),
+            project(':opencensus-testing')
+
     signature "org.codehaus.mojo.signature:java16:+@signature"
 }
 
diff --git a/impl_core/src/main/java/io/opencensus/trace/config/TraceConfigImpl.java b/impl_core/src/main/java/io/opencensus/trace/config/TraceConfigImpl.java
index cf3dc59..3b42c2b 100644
--- a/impl_core/src/main/java/io/opencensus/trace/config/TraceConfigImpl.java
+++ b/impl_core/src/main/java/io/opencensus/trace/config/TraceConfigImpl.java
@@ -22,9 +22,7 @@
   // operations are visible on other CPUs as well.
   private volatile TraceParams activeTraceParams = TraceParams.DEFAULT;
 
-  /**
-   * Constructs a new {@code TraceConfigImpl}.
-   */
+  /** Constructs a new {@code TraceConfigImpl}. */
   public TraceConfigImpl() {}
 
   @Override
diff --git a/impl_core/src/test/java/io/opencensus/trace/SpanFactoryImplTest.java b/impl_core/src/test/java/io/opencensus/trace/SpanFactoryImplTest.java
index 00d051a..1d5cf3a 100644
--- a/impl_core/src/test/java/io/opencensus/trace/SpanFactoryImplTest.java
+++ b/impl_core/src/test/java/io/opencensus/trace/SpanFactoryImplTest.java
@@ -16,7 +16,7 @@
 import static com.google.common.truth.Truth.assertThat;
 import static org.mockito.Mockito.when;
 
-import io.opencensus.internal.TestClock;
+import io.opencensus.testing.common.TestClock;
 import io.opencensus.trace.Span.Options;
 import io.opencensus.trace.SpanImpl.StartEndHandler;
 import io.opencensus.trace.base.SpanId;
diff --git a/impl_core/src/test/java/io/opencensus/trace/SpanImplTest.java b/impl_core/src/test/java/io/opencensus/trace/SpanImplTest.java
index 62052dd..ed4aae7 100644
--- a/impl_core/src/test/java/io/opencensus/trace/SpanImplTest.java
+++ b/impl_core/src/test/java/io/opencensus/trace/SpanImplTest.java
@@ -17,8 +17,8 @@
 
 import io.opencensus.common.Duration;
 import io.opencensus.common.Timestamp;
-import io.opencensus.internal.TestClock;
 import io.opencensus.internal.TimestampConverter;
+import io.opencensus.testing.common.TestClock;
 import io.opencensus.trace.Span.Options;
 import io.opencensus.trace.SpanImpl.StartEndHandler;
 import io.opencensus.trace.base.Annotation;
diff --git a/impl_core/src/test/java/io/opencensus/trace/propagation/PropagationComponentImplTest.java b/impl_core/src/test/java/io/opencensus/trace/propagation/PropagationComponentImplTest.java
index dd7812a..9c1228a 100644
--- a/impl_core/src/test/java/io/opencensus/trace/propagation/PropagationComponentImplTest.java
+++ b/impl_core/src/test/java/io/opencensus/trace/propagation/PropagationComponentImplTest.java
@@ -26,7 +26,6 @@
 
   @Test
   public void implementationOfBinary() {
-    assertThat(propagationComponent.getBinaryFormat())
-        .isInstanceOf(BinaryFormatImpl.class);
+    assertThat(propagationComponent.getBinaryFormat()).isInstanceOf(BinaryFormatImpl.class);
   }
 }
diff --git a/impl_lite/build.gradle b/impl_lite/build.gradle
index 40cce82..30ba787 100644
--- a/impl_lite/build.gradle
+++ b/impl_lite/build.gradle
@@ -4,5 +4,8 @@
     compile project(':opencensus-api'),
             project(':opencensus-impl-core')
 
+    testCompile project(':opencensus-api'),
+            project(':opencensus-impl-core')
+
     signature "net.sf.androidscents.signature:android-api-level-14:+@signature"
 }
diff --git a/settings.gradle b/settings.gradle
index e7a8c4c..41395b1 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -4,6 +4,7 @@
 include ":opencensus-impl-core"
 include ":opencensus-impl-lite"
 include ":opencensus-impl"
+include ":opencensus-testing"
 include ":all"
 include ":core"
 include ":core_impl"
@@ -14,6 +15,7 @@
 project(':opencensus-impl-core').projectDir = "$rootDir/impl_core" as File
 project(':opencensus-impl-lite').projectDir = "$rootDir/impl_lite" as File
 project(':opencensus-impl').projectDir = "$rootDir/impl" as File
+project(':opencensus-testing').projectDir = "$rootDir/testing" as File
 
 // Java8 projects only
 if (JavaVersion.current().isJava8Compatible()) {
diff --git a/testing/README.md b/testing/README.md
new file mode 100644
index 0000000..268bbf3
--- /dev/null
+++ b/testing/README.md
@@ -0,0 +1,5 @@
+OpenCensus Testing Package
+======================================================
+
+* Java 6 and Android compatible.
+* The classes in this directory can be used to test the API integration.
diff --git a/testing/build.gradle b/testing/build.gradle
new file mode 100644
index 0000000..179ab71
--- /dev/null
+++ b/testing/build.gradle
@@ -0,0 +1,9 @@
+description = 'OpenCensus Testing'
+
+dependencies {
+    compile project(':opencensus-api')
+
+    testCompile project(':opencensus-api')
+
+    signature "org.codehaus.mojo.signature:java16:+@signature"
+}
diff --git a/api/src/main/java/io/opencensus/internal/TestClock.java b/testing/src/main/java/io/opencensus/testing/common/TestClock.java
similarity index 98%
rename from api/src/main/java/io/opencensus/internal/TestClock.java
rename to testing/src/main/java/io/opencensus/testing/common/TestClock.java
index d181da3..2a604f2 100644
--- a/api/src/main/java/io/opencensus/internal/TestClock.java
+++ b/testing/src/main/java/io/opencensus/testing/common/TestClock.java
@@ -11,7 +11,7 @@
  * limitations under the License.
  */
 
-package io.opencensus.internal;
+package io.opencensus.testing.common;
 
 import com.google.common.math.LongMath;
 import io.opencensus.common.Clock;
diff --git a/api/src/test/java/io/opencensus/internal/TestClockTest.java b/testing/src/test/java/io/opencensus/testing/common/TestClockTest.java
similarity index 97%
rename from api/src/test/java/io/opencensus/internal/TestClockTest.java
rename to testing/src/test/java/io/opencensus/testing/common/TestClockTest.java
index fe3f80c..f67080c 100644
--- a/api/src/test/java/io/opencensus/internal/TestClockTest.java
+++ b/testing/src/test/java/io/opencensus/testing/common/TestClockTest.java
@@ -11,7 +11,7 @@
  * limitations under the License.
  */
 
-package io.opencensus.internal;
+package io.opencensus.testing.common;
 
 import static com.google.common.truth.Truth.assertThat;
 
