Gradle + Android Studio + Robolectric + Espresso + Mockito + EasyMock/PowerMock + JaCoCo
Name | Description |
---|---|
Gradle | Gradle build system |
Android Gradle Build Tools | Official Gradle Plugin |
Android SDK | Official SDK |
Android SDK Build Tools | Official Build Tools |
Android Studio or | Official IDE |
Intellij | Intellij IDE |
Name | Description |
---|---|
Android Support-v4 | Support Library API 4+ |
Android AppCompat-v7 | Support Library API 7+ |
Name | Description |
---|---|
Espresso | Instrumentation Framework |
Robolectric | Unit Testing Framework |
Name | Description |
---|---|
JaCoCo | JaCoCo Test Coverage |
Coveralls | Hosts test reports published from TravisCI |
Name | Description |
---|---|
TravisCI | Build Server(Builds, Tests, Publishes reports to Coveralls) |
Name | Description |
---|---|
Gradle-play-publisher | Publishes your app to Google Play |
-
Import/Open this project with Android Studio/Intellij(click on
build.gradle
) -
Instrumentation Tests:
- Change the Build Variant Test Artifact to
Instrumentation Tests
- Right click an instrumentation test located in
src/main/androidTest
and click test
- Change the Build Variant Test Artifact to
-
Unit Tests:
- Change the Build Variant Test Artifact to
Unit Tests
- Right click a unit test located in
src/main/test
and click test
- Change the Build Variant Test Artifact to
This project builds with Gradle and the Android Build tools.
Build the APK:
$ gradlew assembleDebug
Install the APK:
$ gradlew installDebug
Run the App:
$ gradlew runDebug
Running the Unit Tests:
The Junit and Robolectric tests run on the JVM, no need for emulators or real devices.
$ gradlew testDebug
Run a single unit test in the debug flavor
:
$ gradlew testDebug --tests="*MainActivityTest*"
Running the Instrumentation Tests:
The Espresso instrumentation tests run on the device.
$ gradlew connectedDebugAndroidTest
Generate Lint Reports:
The Lint plugin generates reports based off the source code.
$ gradlew lintDebug
Generate Jacoco Test Coverage:
The Jacoco plugin generates coverage reports based off the unit tests.
$ gradlew jacocoDebugReport