我正在按照本教程将集成测试环境添加到我的Android项目中.我有创建src/integrationTest/java和src/integrationTest/resourcesdirs然后我已经添加到我的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')
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我同步Gradle文件时,我收到此错误:
错误:(134,0)没有这样的属性:main for class:org.gradle.api.internal.file.DefaultSourceDirectorySet可能的解决方案:name
这是什么意思?我该如何解决?
谢谢
编辑
我刚刚尝试过,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')
}
}
Run Code Online (Sandbox Code Playgroud)
现在我收到这个错误:
错误:(136,0)无法在源集main上找到属性'output'.
解决了!实际上,这些行不必在源集配置中,而是在运行集成测试的任务中.现在,我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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1695 次 |
| 最近记录: |