我正在尝试将多个测试目录添加到我的android项目中。理想情况下,我喜欢unite测试目录和集成测试目录。我在Spock中进行了所有的联合测试,并且我想使用Spock或robospock进行所有的集成测试。问题是,在我的Gradle构建文件中,当我尝试执行此操作时,我不断收到错误:
android {
sourceSets{
integrationTest {
groovy {
test.groovy.srcDir 'src/integrationTest/groovy'
}
}
}
}
我收到此错误:
错误:(77,0)无法为参数找到方法groovy() [build_c07qe1tzsdi2876irgi5e3c6i $ _run_closure2 $ _closure9 $ _closure12 $ @ _closure13 7f835189] 关于类型的源集合集成测试 com.android.build.gradle.internal.api.DefaultAndroidSourceSet。
当我使用java时,这是有效的:
android {
sourceSets{
integrationTest {
java {
test.java.srcDir 'src/integrationTest/java'
}
}
}
}
我也试过https://github.com/groovy/groovy-android-gradle-plugin:
androidGroovy {
sourceSets {
integrationTest {
groovy {
srcDirs += 'src/integrationTest/groovy'
}
}
}
}
我正在使用'com.android.tools.build:gradle:2.3.0'
,并且我已经成功地在测试目录中运行spock测试,所以我的常规配置正常工作,我只是无法添加更多groovy测试目录。
我在这个问题上得到了与上面相同的错误。我也在android包装器之外尝试过它们无济于事。
我真的非常感谢任何能够指责我朝正确方向前进的人。我不知道还有什么可以尝试的。
答案 0 :(得分:2)
原来我使用的是旧版本的android groovy编译器。您需要执行此操作:apply plugin: 'groovyx.android'
这是groovyx.grooid.groovy-android
的新名称,您需要将此类路径添加到依赖项中。请注意,这应该在您的根项目依赖项中,而不是在类依赖项中,因为它需要在apply语句之前发生。
dependencies {
classpath 'org.codehaus.groovy:groovy-android-gradle-plugin:1.1.0'
}
然后你可以这样做:
android {
sourceSets {
test.java.srcDirs += 'src/integration-test/groovy'
test.java.srcDirs += 'src/unit-test/groovy'
}
}
我只花了两天才弄明白。 :d