/android-gradle-java-app-template

Gradle + Android Studio + Robolectric + Espresso + Mockito

Primary LanguageJavaApache License 2.0Apache-2.0

Android Gradle Java App Template

License build Twitter Follow

Gradle + Android Studio + Robolectric + Espresso + Mockito

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

Testing Frameworks:

Name Description
Espresso Instrumentation Framework
Robolectric Unit Testing Framework

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/androidTest and click test
  • Unit Tests:

    • Change the Build Variant Test Artifact to Unit Tests
    • Right click a unit test located in src/main/test and 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

Testing

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

Reports

Generate Lint Reports:

The Lint plugin generates reports based off the source code.

gradlew lintDebug

License

Copyright (C) 2015 Jared Burrows

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.