gpt4 book ai didi

android - 在 Android Studio 中将集成测试与单元测试分开

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:29 27 4
gpt4 key购买 nike

我正在尝试在 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
}

我遇到了几个问题:

  1. 该任务将运行,但它没有可用的其余项目文件,因此我收到有关缺少类的错误消息。我发现了一些特定于 Java 的解决方案,例如:

    但我一直无法弄清楚如何让它与 Android Studio 一起工作。 mainmain.output 的各种组合以及使用依赖项似乎都不起作用,我收到如下错误:

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

    这是有道理的,因为 android 插件定义了自己的源集,但这些也不起作用。

  2. IDE 无法将该目录识别为测试源目录。出于测试目的,我将源集名称更改为 androidTest 并且它正确地获取了绿色文件夹图标并且测试与已经在 androidTest 中定义的现有单元测试一起运行.

最佳答案

@sm4 的答案确实适用于 Java 模块(使用 apply plugin: 'java'),但不幸的是不适用于 Android 应用程序(apply plugin: 'com.android.application') 或 Android 库模块 (apply plugin: com.android.library).

但我找到了解决方法:
为您的集成测试创建文件夹:

src/integrationTest/java
src/integrationTest/res

为您的新文件夹添加源集:

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

在纯 Java 模块中,java 文件夹现在会变成绿色,res 文件夹图标会改变。在 Android 应用程序/库模块中它不会。

现在创建一个与 sourceSet 中配置的文件夹同名的产品风格,它可以工作!

productFlavors {
integrationTest {
}
}

然后在上面放一颗樱桃:

configurations {
integrationTestCompile.extendsFrom testCompile
}

关于android - 在 Android Studio 中将集成测试与单元测试分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26694283/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com