Run JUnit tests in Gradle for Android app
10,488
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.
Author by
Luis
Updated on July 25, 2022Comments
-
Luis almost 2 years
I want to run simple, plain JUnit tests in my Android app project, using Gradle at the same time to write Activity tests afterwards. It took a loong time to configure Gradle and make it work, but, anyway, now I'm stuck trying to make JUnit tests just compile.
I checked this link, but when I run gradle I get the following error:
DummyTest.java:3: error: package junit. framework does not exist import junit.framework.Assert; ^ \DummyTest.java:8: error: cannot find symbol Assert.assertEquals(5,3); ^ symbol: variable Assert location: class DummyTest
So, junit is not found...
The following is my full gradle.build file:
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.6.+' } } apply plugin: 'android' repositories { mavenCentral() } dependencies { compile files('libs/joda-time-2.3.jar') compile files('libs/android-support-v4.jar') unitTestCompile files("$project.buildDir/classes/release") unitTestCompile 'junit:junit:4.8.2' } android { compileSdkVersion 17 buildToolsVersion '17.0.0' sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] } unitTest { java.srcDir file('test') resources.srcDir file('test/res') } } defaultConfig { minSdkVersion 14 versionName '1.0' versionCode 1 targetSdkVersion 17 } } // add the unitTest task task unitTest(type:Test, dependsOn: assemble) { description = "run unit tests" testClassesDir = project.sourceSets.unitTest.output.classesDir classpath = project.sourceSets.unitTest.runtimeClasspath } build.dependsOn unitTest
-
Luis over 10 yearsOh, yes I did, I moved outside the "android" block and inside... I just haven't been able to make it work.
-
stefan222 about 9 yearsGreat, this saved my day! Should be accepted as the correct answer.