Running Android device tests using the Spock framework

I use:

  • Android Studio 2.1.3
  • Gradle 2.14.1 (I also tried with 2.14)
  • OpenJDK version "1.8.0_91"

I want to write some unit tests using Groovy and Spock for an example Android application.

I already read about RoboSpock .

When I try to run a simple test:

package a.b.regex

class TestSum extends spock.lang.Specification {

    def "test adding some numbers"() {
        when:
        def a = 5 + 4

        then:
        a == 9
    }
}

When I try to run this test in Android Studio, I have an error:

Process finished with exit code 1
Class not found: "a.b.regex.TestSum"Empty test suite.

The configurations I used are:

1)

buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.3'
        classpath 'org.codehaus.groovy:gradle-groovy-android-plugin:0.3.6'
    }
}

apply plugin: 'groovyx.grooid.groovy-android'
// ...
dependencies {
    testCompile 'org.robospock:robospock:1.0.0'
}

2)

buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.3'
        classpath 'org.codehaus.groovy:groovy-android-gradle-plugin:1.0.0'
    }
}

apply plugin: 'groovyx.android'
dependencies {
    testCompile "org.codehaus.groovy:groovy-all:2.4.1"
    testCompile "org.spockframework:spock-core:1.0-groovy-2.4"
    testCompile 'org.codehaus.groovy:groovy:2.4.6:grooid'
}

On the console, no tests run at all. When testing Java applications, I have no problem.

Here is the project code in which I want to use Spock: GitHub repository

Fortunately Pieces, I found the answer.

:

apply plugin: 'groovyx.android'

buildscript {
    repositories {
        jcenter() // or mavenCentral, etc.
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.3'
        classpath 'org.codehaus.groovy:groovy-android-gradle-plugin:1.0.0'
    }
}

testCompile 'org.codehaus.groovy:groovy:2.4.7:grooid'
testCompile('org.spockframework:spock-core:1.0-groovy-2.4') {
    exclude group: 'org.codehaus.groovy'
    exclude group: 'junit'
}
+4
1

1) , , groovy android. 1.0.0. , , , androidTest, .

2)   groovy -all spock.

dependencies {
    testCompile 'org.codehaus.groovy:groovy:2.4.7:grooid'
    testCompile('org.spockframework:spock-core:1.0-groovy-2.4') {
      exclude group: 'org.codehaus.groovy'
      exclude group: 'junit'
    }
  }

, # 1, , , androidTest .

androidTest , , , , JVM.

+3

Source: https://habr.com/ru/post/1652724/


All Articles