junit testing with gradle for an android project

前端 未结 5 793
青春惊慌失措
青春惊慌失措 2020-12-24 12:31

I am trying to get tests ( junit and robolectric ) working in an Android project but am totally stuck. My main problem is that all testing I found with gradle somehow pull i

相关标签:
5条回答
  • 2020-12-24 13:02

    You should use this doc https://developer.android.com/training/testing/unit-testing/local-unit-tests.html It describes non-instrumentation unit tests that run on developer machine, not on android device.

    0 讨论(0)
  • 2020-12-24 13:08

    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"
    

    }

    0 讨论(0)
  • 2020-12-24 13:18

    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 tests
    
    sourceSets {
            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
    
    0 讨论(0)
  • 2020-12-24 13:23

    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.

    0 讨论(0)
  • 2020-12-24 13:24

    This is what worked for me only:

    androidTestCompile 'net.bytebuddy:byte-buddy-android:0.7.8'
    
    0 讨论(0)
提交回复
热议问题