android-gradle-kotlin-app-template
android-gradle-kotlin-app-template copied to clipboard
Gradle + Android Studio + Robolectric + Espresso + JaCoCo
Android Gradle Kotlin App Template
Gradle + Android Studio + Robolectric + Espresso + JaCoCo
Technologies used:
Build Tools:
| 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 |
Android Libraries:
| Name | Description |
|---|---|
| Android Support-v4 | Support Library API 4+ |
| Android AppCompat-v7 | Support Library API 7+ |
Testing Frameworks:
| Name | Description |
|---|---|
| Espresso | Instrumentation Framework |
Reporting Plugins:
| Name | Description |
|---|---|
| JaCoCo | JaCoCo Test Coverage |
| Coveralls | Hosts test reports published from TravisCI |
Continuous Integration:
| Name | Description |
|---|---|
| TravisCI | Build Server(Builds, Tests, Publishes reports to Coveralls) |
Publishing to Google Play:
| Name | Description |
|---|---|
| Gradle-play-publisher | Publishes your app to Google Play |
Getting Started:
Android Studio or Intellij Support(Simple):
-
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/androidTestand click test -
Unit Tests:
-
Change the Build Variant Test Artifact to
Unit Tests -
Right click a unit test located in
src/main/testand click test
Building and Running
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
Testing
Running the Unit Tests:
The Junit 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
Reports
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