微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将集成测试与Android Studio中的单元测试分开

我试图在 Android Studio 0.9中分离出集成测试.

我已经将以下内容添加到构建文件中:

sourceSets {
    integrationTest {
        java.srcDir file('src/integrationTest/java')
    }
}

task integrationTest(type: Test) {
    testClassesDir = sourceSets.integrationTest.output.classesDir
    classpath = sourceSets.integrationTest.runtimeClasspath
}

我遇到了几个问题:

>任务将运行,但没有其余的项目文件可用,所以我收到有关缺少类的错误.有一些Java特定的解决方案,我发现如:

> http://selimober.com/blog/2014/01/24/separate-unit-and-integration-tests-using-gradle/
> https://blog.safaribooksonline.com/2013/08/22/gradle-test-organization/

但是我无法弄清楚如何使它与Android Studio一起使用. main和main.output的各种组合以及依赖关系的播放似乎不起作用,我会收到以下错误

Error:(33,0) Could not find property 'main' on SourceSet container..

这是有道理的,因为android插件定义了自己的源代码集,但这些也不起作用.
> IDE不能将目录识别为测试源目录.为了测试目的,我将源集名称更改为androidTest,并且它正确地获取了绿色文件夹图标,并且测试与已经在androidTest中定义的单元测试一起运行.

解决方法

我在Gradle中完成了这种分离,但是对于一个纯Java项目而不是Android.您没有在源集中指定类路径,我认为这是问题.这是build.gradle的相关部分:
sourceSets {
    integration {
        java {
            compileClasspath += main.output + test.output
            runtimeClasspath += main.output + test.output
            srcDir file('src/integration/java')
        }
        resources {
            srcDir 'src/integration/resources'
        }
    }
}

configurations {
    integrationCompile.extendsFrom testCompile
    integrationRuntime.extendsFrom testRuntime
}

task integrationTest(group: "verification",type: Test) {
    testClassesDir = sourceSets.integration.output.classesDir
    classpath = sourceSets.integration.runtimeClasspath
}
integrationTest.dependsOn testClasses

如果IntelliJ想法具有标准名称(java,资源),则会在src / integration下拾取文件夹.

原文地址:https://www.jb51.cc/android/312032.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐