为什么不使用此gradle脚本运行测试

时间:2015-04-22 16:22:12

标签: unit-testing android-studio android-gradle

使用:Android Studio 1.1.0; Gradle(内置)

我正在尝试创建单元测试并运行它们。我用一些测试创建了一个示例项目(Calculator类型交易)。从IDE中完成测试并且它们正常工作。我试图从控制台做同样的事情,因为最终的目标是在集成服务器上运行这些,但测试不会运行。为什么测试不是从控制台运行的?这个gradle脚本有错误吗?

对不起,很长的帖子。更好的是提供过多的数据而不是更少。我总共有一天的年龄。是的,jacoco任务是因为我想接下来的报道。截至目前,我看到空的报告,因为测试没有运行我想。

的build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

apply plugin: 'java'
apply plugin: 'jacoco'

test {
    testLogging {
        events 'started', 'passed'
    }
}

jacocoTestReport {
    reports {
        xml.enabled false
        csv.enabled false
        html.destination "${buildDir}/reports"
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

我使用此命令开始测试

./gradlew test

这是我收到的报告

:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72200Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42200Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources UP-TO-DATE
:app:generateDebugSources UP-TO-DATE
:app:compileDebugJava UP-TO-DATE
:app:preCompileDebugUnitTestJava
:app:compileDebugUnitTestJava UP-TO-DATE
:app:compileDebugUnitTestSources UP-TO-DATE
:app:mockableAndroidJar UP-TO-DATE
:app:assembleDebugUnitTest UP-TO-DATE
:app:testDebug UP-TO-DATE
:app:checkReleaseManifest
:app:prepareReleaseDependencies
:app:compileReleaseAidl UP-TO-DATE
:app:compileReleaseRenderscript UP-TO-DATE
:app:generateReleaseBuildConfig UP-TO-DATE
:app:generateReleaseAssets UP-TO-DATE
:app:mergeReleaseAssets UP-TO-DATE
:app:generateReleaseResValues UP-TO-DATE
:app:generateReleaseResources UP-TO-DATE
:app:mergeReleaseResources UP-TO-DATE
:app:processReleaseManifest UP-TO-DATE
:app:processReleaseResources UP-TO-DATE
:app:generateReleaseSources UP-TO-DATE
:app:compileReleaseJava UP-TO-DATE
:app:preCompileReleaseUnitTestJava
:app:compileReleaseUnitTestJava UP-TO-DATE
:app:compileReleaseUnitTestSources UP-TO-DATE
:app:assembleReleaseUnitTest UP-TO-DATE
:app:testRelease UP-TO-DATE
:app:test UP-TO-DATE

BUILD SUCCESSFUL

Total time: 10.288 secs

1 个答案:

答案 0 :(得分:0)

:<module>:test UP-TO-DATE是因为项目的输入/输出没有任何变化来触发重建。

如果要强制执行测试,可以在运行测试之前清除测试结果。 clean<Task>是一项特殊任务,可以清除任务的输出。

./gradlew cleanTest test

还有其他选项,如果您希望测试始终运行,您可以通过修改任务的配置强制它们永远不会UP TO DATE。在build.gradle文件中,尝试:

test {
  outputs.upToDateWhen { false }
}