junit testing with gradle for an android project
You don't need the Java plugin, since the Android will take care of what you need mostly, from what I've seen so far.
I managed to get my Robolectric and junit tests running via this man's blog: http://tryge.com/2013/02/28/android-gradle-build/
My build.gradle file looks like this (where my test files are in the {projectdir}/test directory.
...// Unit testssourceSets { unitTest { java.srcDir file('test') resources.srcDir file('test/resources') }}dependencies { unitTestCompile files("$project.buildDir/classes/debug") unitTestCompile 'junit:junit:4.11' unitTestCompile 'org.robolectric:robolectric:2.1.1' unitTestCompile 'com.google.android:android:4.0.1.2'}configurations { unitTestCompile.extendsFrom runtime unitTestRuntime.extendsFrom unitTestCompile}task unitTest(type:Test, dependsOn: assemble) { description = "run unit tests" testClassesDir = project.sourceSets.unitTest.output.classesDir classpath = project.sourceSets.unitTest.runtimeClasspath}build.dependsOn unitTest
AndroidStudio and the new Android Gradle plugin are now offering official unit test support.
This is supported from Android Studio 1.1+ and Android Gradle plugin version 1.1.0+
Dependencies can now be declared as testCompile:
dependencies { testCompile 'junit:junit:4.12' testCompile "org.mockito:mockito-core:1.9.5"}
More details here: Unit testing support - Android Tools Project Site.
This guide might help -http://www.slideshare.net/tobiaspreuss/how-to-setup-unit-testing-in-android-studio
Latest gradle the test should be under androidTest dir
Also in your gradle.build:
dependencies { androidTestCompile 'junit:junit:4.+'}
also add those under defaultConfig {
testPackageName "test.java.foo"testInstrumentationRunner "android.test.InstrumentationTestRunner"
}