我正在关注this教程,将集成测试环境添加到我的Android项目中。
我创建了src/integrationTest/java
和src/integrationTest/resources
dirs,然后我将其添加到我的build.gradle
:
sourceSets {
integrationTest {
java {
compileClasspath += main.output + test.output
runtimeClasspath += main.output + test.output
srcDir file('src/integrationTest/java')
}
resources.srcDir file('src/integrationTest/resources')
}
}
但是当我同步Gradle文件时,我收到此错误:
错误:(134,0)没有这样的属性:主要用于类: org.gradle.api.internal.file.DefaultSourceDirectorySet可能 解决方案:名称
这意味着什么?我该如何解决?
由于
修改
我刚刚尝试使用android.sourceSets.main.output
和android.sourceSets.test.output
代替main.output
和test.output
:
sourceSets {
integrationTest {
java {
compileClasspath += android.sourceSets.main.output + android.sourceSets.test.output
runtimeClasspath += android.sourceSets.main.output + android.sourceSets.test.output
srcDir file('src/integrationTest/java')
}
resources.srcDir file('src/integrationTest/resources')
}
}
现在我收到了这个错误:
错误:(136,0)在源集main上找不到属性'output'。
答案 0 :(得分:6)
解决!实际上,这些行不必在源集配置中,而是在运行集成测试的任务中。现在,我的build.gradle
看起来像:
sourceSets {
integrationTest {
java.srcDir file('src/integrationTest/java')
resources.srcDir file('src/integrationTest/resources')
}
}
configurations {
integrationTestCompile.extendsFrom testCompile
}
task integrationTest(type: Test) {
testClassesDir = sourceSets.integrationTest.output.classesDir
classpath = sourceSets.integrationTest.runtimeClasspath
}