android-studio-unit-test-plugin

Additional

Language
Java
Version
N/A
Created
Jun 8, 2014
Updated
Aug 26, 2017 (Retired)
Owner
Eva Tatarka (evant)
Contributors
Eva Tatarka (evant)
Lewis Rhine (LewisRhine)
2
Activity
Badge
Generate
Download
Source code

#[Deprecated] Google has finally released a proper solution for unit testing. Therefore this plugin will no longer be activlty maintained.

android-studio-unit-test-plugin

Android Studio (and Intellij 14) IDE support for Android gradle unit tests.

This plugin will mark test directories and resolve testCompile dependencies. It also sets up the correct system properties so that Robolectric will work if you are using it.

Requirements

  • Android Studio 0.6.0+
  • Android Gradle Plugin 0.11.0+
  • JCAndKSolutions' android-unit-test gradle plugin 1.5.0+

Install IDE the plugin

In Android Studio go to Settings -> Plugins -> Browse Repositories... and search for 'Android Studio Unit Test'.

If you feel like living on the edge, can download the zip then go to Settings -> Plugins -> Install plugin from disk.. to install.

Install the gradle plugin

To add unit testing support to your gradle project, you need JCAndKSolutions' android-unit-test gradle plugin. You need to set it up as described in the README. Make sure you have at least version 1.5.0.

Troubleshooting

  • Running tests from the IDE gives a ClassNotFoundException or something similar.

If you are running Android Stuido 0.8.9+. The latest version of this plugin will compile your test classes before running the test. However, the very first time you run them after they have been cleaned, you will still get this error. Simply attempting to run again will fix it and any subsiquent runs will work correctly.

If you are running intellij or and older version of Android Studio. If your app includes a library project compile project(":myLib") then the JUnit test runner will attempt to run testClasses on that project. Since it doesn't have that task it will fail and your test classes will not be generated. To fix, add the needed task to your library project.

task testClasses {}
  • The relative path for Robolectric's @Config(manifest = "path") is different between gradle and Android Studio.

    This is because when creating a run configuration, the path is by default relative to your project root, whereas when running it from gradle it's correctly relative to your apps root. To fix, edit the JUnit run configuration and change Working Directory to point to your app root.