Test Project is an example of a Gradle-based, Android Studio project structure with regular Android tests, Espresso tests, and JVM JUnit 4 tests.
com.boes.testproject.app:
main app package located at app/src/main
Package includes 2 activities, a content provider, and a service to test.
com.boes.testproject.app.test:
Android-specific test package located at app/src/androidTest
Tests use both the stock Android testing framework and Espresso.
com.boes.testproject.core:
Java library package located at core/src/main
It is for application code that does not rely on the Android framework.
com.boes.testproject.core.test:
Java library test package located at core/src/test
It contains tests that run on the JVM.
-
Espresso is set up in app/build.gradle using Jake Wharton's Double Espresso tool
-
See Double Espresso README about any dependency exclusions needed in build.gradle for your project
-
This project excludes the support library in its androidTestCompile because it's already included from the compile dependencies in app/build.gradle
-
Set the testInstrumentationRunner in the defaultConfig to GoogleInstrumentationTestRunner in app/build.gradle
-
Exclude LICENSE.txt within packagingOptions in app/build.gradle
-
Add the Android-independent, core package library as a compile dependency in app/build.gradle
-
app: Runs the app
-
App Tests: Runs Android-dependent tests in com.boes.testproject.app.test on device
Specify instrumentation runner as GoogleInstrumentationTestRunner in setup. Find by including non-project classes in search. -
Core Tests: Runs independent Java tests in com.boes.testproject.core.test on development machine
Package contains JUnit 4 style test cases.