aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar dannark <dannark@google.com>2018-02-13 14:40:51 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-13 14:42:12 -0800
commit99c4c237a5690f17b32572d224c8b39e388eec45 (patch)
tree13c9e31edfb7dcb78cc799bd504ef47bc4c17457 /src
parent3c082bafa3c88eaf802e748b41aebf09064a1b89 (diff)
Add Bazel documentation for android_local_test.
RELNOTES:None PiperOrigin-RevId: 185590627
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidLocalTestRule.java70
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java2
2 files changed, 71 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidLocalTestRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidLocalTestRule.java
index 89692eba84..7c65ff46d9 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidLocalTestRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidLocalTestRule.java
@@ -98,3 +98,73 @@ public class BazelAndroidLocalTestRule implements RuleDefinition {
.build();
}
}
+
+/*<!-- #BLAZE_RULE (NAME = android_local_test, TYPE = TEST, FAMILY = Android) -->
+
+<p>
+This rule is for unit testing <code>android_library</code> rules locally
+(as opposed to on a device).
+It works with the Android Robolectric testing framework.
+See the <a href="http://robolectric.org/">Android Robolectric</a> site for details about
+writing Robolectric tests.
+</p>
+
+${IMPLICIT_OUTPUTS}
+
+<h4 id="android_local_test_examples">Examples</h4>
+
+<p>
+To use Robolectric with <code>android_local_test</code>, add
+<a href="https://github.com/robolectric/robolectric/tree/master/bazel">Robolectric's repository</a>
+to your <code>WORKSPACE</code> file:
+<pre class="code">
+http_archive(
+ name = "robolectric",
+ urls = ["https://github.com/robolectric/robolectric/archive/<COMMIT>.tar.gz"],
+ strip_prefix = "robolectric-<COMMIT>",
+ sha256 = "<HASH>",
+)
+load("@robolectric//bazel:robolectric.bzl", "robolectric_repositories")
+robolectric_repositories()
+</pre>
+
+This pulls in the <code>maven_jar</code> rules needed for Robolectric.
+
+Then each <code>android_local_test</code> rule should depend on
+<code>@robolectric//bazel:robolectric</code>. See example below.
+
+</p>
+
+<pre class="code">
+android_local_test(
+ name = "SampleTest",
+ srcs = [
+ "SampleTest.java",
+ ],
+ manifest = "LibManifest.xml",
+ deps = [
+ ":sample_test_lib",
+ "@robolectric//bazel:robolectric",
+ ],
+)
+
+android_library(
+ name = "sample_test_lib",
+ srcs = [
+ "Lib.java",
+ ]
+ resource_files = glob(["res/**"]),
+ manifest = "AndroidManifest.xml",
+)
+</pre>
+
+<!-- #END_BLAZE_RULE --> */
+
+
+/* <!-- #BLAZE_RULE(android_local_test).IMPLICIT_OUTPUTS -->
+<ul>
+ <li><code><var>name</var>.jar</code>: A Java archive of the test.</li>
+ <li><code><var>name</var>-src.jar</code>: An archive containing the sources
+ ("source jar").</li>
+</ul>
+<!-- #END_BLAZE_RULE.IMPLICIT_OUTPUTS --> */
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java
index 3d758f1fa9..4527d7d11e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java
@@ -50,7 +50,7 @@ public class AndroidLocalTestBaseRule implements RuleDefinition {
<p>
The list of allowed rules in <code>deps</code> are <code>android_library</code>,
<code>aar_import</code>, <code>java_import</code>, <code>java_library</code>,
- <code>java_lite_proto_library</code>, and <code>proto_library</code>.
+ and <code>java_lite_proto_library</code>.
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
/* <!-- #BLAZE_RULE($android_local_test_base).ATTRIBUTE(srcs) -->