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

前端之家收集整理的这篇文章主要介绍了将集成测试与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.f2er.com/android/312032.html

猜你在找的Android相关文章