android - 使用android在gradle上单独集成测试任务

标签 android testing gradle android-gradle-plugin

我想运行在默认测试运行中排除的路径中包含“集成”一词的测试,但我想在一个单独的任务中一起运行它们。目前我有一个基本的测试配置:

sourceSets {
    androidTest.setRoot('src/test')

    integrationTest.setRoot('src/test')
}

...

androidTestCompile 'junit:junit:4.11'
androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.1'
androidTestCompile files('libs/android-junit-report-1.5.8.jar')
androidTestCompile 'com.squareup:fest-android:1.0.8'
androidTestCompile 'org.robolectric:robolectric:2.3'

integrationTestCompile 'junit:junit:4.11'
integrationTestCompile 'com.jayway.android.robotium:robotium-solo:5.1'
integrationTestCompile files('libs/android-junit-report-1.5.8.jar')
integrationTestCompile 'com.squareup:fest-android:1.0.8'
integrationTestCompile 'org.robolectric:robolectric:2.3'

...

androidTest {
    include '**/*Test.class'
    exclude '**/espresso/**/*.class'
    exclude '**/integration/**'
}

task integrationTest(type: Test) {
    include '**/integration/**'
}

这会导致在 AS 中同步 gradle 时出错:

Warning: project ':ProjectName': Unable to resolve all content root directories
Details: java.lang.NullPointerException: null

但如果我删除 integrationTest 任务,它就不会发生。此外,在存在任务的情况下,我能够运行“integrationTest”任务,但这会导致另一个错误:

Error:Could not determine the dependencies of task ':ProjectName:integrationTest'.
A base directory must be specified in the task or via a method argument!

最佳答案

这不是很明显,但这个错误是由于没有在任务定义中定义 testClassesDir 造成的。

task integrationTest(type: Test) {
    include '**/integration/**'
    testClassesDir = file('build/intermediates/classes')
}

Gradle User Guide 中描述了类似的内容对于 Java 插件,但它并不完全转换为 Android 插件。我还没有弄清楚所有的细节,但我会在弄清楚后更新这个答案。

关于android - 使用android在gradle上单独集成测试任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26604917/

相关文章:

hibernate - 在 gradle 中执行 bash 脚本

没有互联网连接时暂停的 Android Intent 服务

android - 使用 Mobile-Buy-SDK Android 在 Shopify 中查询产品

java - 如何以编程方式切换到默认软键盘

maven - 可以通过使用 maven 但不使用 gradle 的 Artifact 来解决依赖关系吗?

java - 使用 gradle 为 spring-boot REST 服务运行集成测试

gradle - 识别已在gradle中调用的项目列表

android - 如何在类文件中为 TextView 提供文本颜色

testing - 检测通过模板生成的文本框的问题

python-3.x - Sanic 如何加载测试应用程序的配置?