简体   繁体   English

在基于Android Gradle的项目中设置集成测试

[英]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/javasrc/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.outputandroid.sourceSets.test.output而不是main.outputtest.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.

相关问题 ANDROID STUDIO:此项目不是基于 gradle 的项目 - ANDROID STUDIO: this project is not a gradle-based project Android Studio更新Bumblebee后,该项目不是基于Gradle的项目 - After Android Studio Update Bumblebee, The project is not a Gradle-based project 在Android Studio上调试基于gradle的Java项目? - Debugging a gradle-based Java project on Android Studio? 使用基于Gradle的配置时,在Android Studio(IntelliJ)上运行简单的JUnit测试 - Running simple JUnit tests on Android Studio (IntelliJ) when using a Gradle-based configuration 如果Android项目不是基于Maven或Gradle的,我如何知道IntelliJ使用的是哪个版本的Android工具 - How can I tell which version of Android tools is used by IntelliJ if an Android project is not Maven or Gradle-based 像“SERVER_URL”这样的属性应该存在于基于gradle的Android项目中? - Where should properties like “SERVER_URL” live in a gradle-based Android project? 该项目不是基于Gradle的项目。 如何从根目录打开项目? - The project is not a Gradle-based project. How do I open the project from the root directory? 为 Facebook screenshot-tests-for-android 设置 gradle 插件的问题 - Issue setting up the gradle plugin for Facebook screenshot-tests-for-android 使用Gradle在IDEA中设置项目 - Setting up a project in IDEA with Gradle Android Gradle Jacoco:用于集成测试的离线工具 - Android Gradle Jacoco: offline instrumentation for integration tests
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM