diff options
author | dannark <dannark@google.com> | 2018-02-13 14:40:51 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-02-13 14:42:12 -0800 |
commit | 99c4c237a5690f17b32572d224c8b39e388eec45 (patch) | |
tree | 13c9e31edfb7dcb78cc799bd504ef47bc4c17457 /src | |
parent | 3c082bafa3c88eaf802e748b41aebf09064a1b89 (diff) |
Add Bazel documentation for android_local_test.
RELNOTES:None
PiperOrigin-RevId: 185590627
Diffstat (limited to 'src')
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) --> |