[英]Setting up integration tests in Android Gradle-based project
I'm following this tutorial to add integration test env to my Android project. 我正在按照本教程将集成测试环境添加到我的Android项目。 I have create
src/integrationTest/java
and src/integrationTest/resources
dirs and then I have added this to my build.gradle
: 我创建了
src/integrationTest/java
和src/integrationTest/resources
目录,然后将其添加到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')
}
}
But when I sync Gradle files I get this error: 但是,当我同步Gradle文件时,出现此错误:
Error:(134, 0) No such property: main for class: org.gradle.api.internal.file.DefaultSourceDirectorySet Possible solutions: name
错误:(134,0)无此属性:类的主要对象:org.gradle.api.internal.file.DefaultSourceDirectorySet可能的解决方案:名称
What does it means? 这是什么意思? How can I solve it?
我该如何解决?
Thanks 谢谢
EDIT 编辑
I have just tried with android.sourceSets.main.output
and android.sourceSets.test.output
instead of main.output
and test.output
, respectively: 我刚刚尝试分别使用
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')
}
}
And now I get this error: 现在我得到这个错误:
Error:(136, 0) Could not find property 'output' on source set main.
错误:(136,0)在源集main上找不到属性“输出”。
Solved! 解决了! Actually, these lines don't have to be in source set config, but in the task that runs integration tests.
实际上,这些行不必在源集配置中,而在运行集成测试的任务中。 Now, my
build.gradle
looks like: 现在,我的
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
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.