Skip to content

Combines Android Studio, Gradle, Espresso, Robolectric, AndroidAnnotations, RoboCoP, JaCoCo

Notifications You must be signed in to change notification settings

pc-ssurapruik/android-gradle-template

 
 

Repository files navigation

Rapid start development and test

with Android Studio, Gradle, Espresso, Robolectric, AndroidAnnotations, RoboCoP, JaCoCo

Build Status & UnitTest Coverage Status

Wishes, improvements and discussions about the stuff here are welcome

see also wiki for more help

Last tests done with

  • Android Studio 0.8.1
  • Gradle Build Tools 0.12.+
  • Gradle 1.12

Getting Started

until next release of novodes test plugin with this pull request , we use our own custom version

For gradle-android-test-plugin:0.9.9-SNAPSHOT run Scripts/install-custom-gradle-test-plugin.sh

Check if the project and tests works on your machine

clone, attach phone (or start emulator), run Scripts/run-tests.sh from project root

Check if you get this project to work with andorid studio

import to android studio, start development, press play

Test support in IDE

This project template support AndroidStudio.

Run tests in Android Studio need some configuration: see wiki for description

Tests on command line

unit tests: ./gradlew :AppUnitTests:testDebug

  • append :AppUnitTests:jacocoTestReport for coverage report

component tests: ./gradlew :AppComponentTests:testDebug

  • append `:AppComponentTests:jacocoTestReport for coverage report

acceptance tests: ./gradlew :App:connectedAndroidTest

  • replace by :App:connectedCheck for coverage report

rest example

Currently RestActivity example fails when no server is reachable.

  • start Script/start-wiremock.sh
  • kill Script/start-wiremock.sh kill

Test results

  • build/index.html (should collect all reports, current is miss the AndroidSample module reports)
  • AppUnitTests/build/test-report/debug/index.html (unit test)
  • AppUnitTests/build/reports/jacoco/test/html/index.html (unit test coverage)
  • AppComponentTests/build/test-report/debug/index.html (component test)
  • AppComponentTests/build/reports/jacoco/test/html/index.html (component test coverage)
  • App/build/reports/androidTests/connected/index.html (acceptance tests)
  • App/build/reports/coverage/debug/index.html (acceptance tests coverage)

Features done

  • Gradle + AndroidStudio as development Enironment
  • Use novoda/gradle-android-test-plugin to use Robolectric in submodule
  • Robolectric for unit tests
    • Mockito
    • Code coverage with JaCoCo
    • Code coverage with Teamcity
  • Robolectric for component tests
    • Code coverage with JaCoCo
    • Code coverage with Teamcity
  • FEST Android assertions
  • Espresso for acceptance tests
  • AndroidAnnotations generate dependency injection
  • RoboCoP generate database management
  • Shortcut: jump between test and implementation with default short cut
  • Travis CI runs all test variants
  • Coveralls shows unit test code coverage coveralls-gradle-plugin

Scripts

  • run-tests.sh execute all test variants
  • run-tests-fast.sh execute just the robolectric tests
  • run-tests-travis.sh do all steps necessary for full automatic builds, like install custom dependencies

About

Combines Android Studio, Gradle, Espresso, Robolectric, AndroidAnnotations, RoboCoP, JaCoCo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published