2015-04-22 89 views
1

使用:Android Studio 1.1.0; Gradle(内置)为什么测试不能使用这个gradle脚本运行

我正在尝试创建单元测试并运行它们。我用一些测试创建了一个示例项目(计算器类型处理)。从IDE进行测试并且它们正常工作。我试图从控制台执行相同的操作,因为最终目标是在集成服务器上运行这些操作,但测试无法运行。为什么测试不能从控制台运行?这个gradle脚本是否有错误?

对不起,很长的文章。更好的办法是给予超出数据的数量。我在Gradle中总共有一天的时间。是的,可可任务是因为我希望接下来的报道。截至目前,我看到空的报告,因为测试没有运行,我想。

的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 

回答

0

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

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

./gradlew cleanTest test

也有其他的选择,如果你想测试总是来看,你可以迫使他们通过修改任务的配置永远是UP TO DATE。在您的build.gradle文件中,请尝试:

test { 
    outputs.upToDateWhen { false } 
} 
+0

感谢您的输入,但添加“cleanTest”参数无效。情况与以前一样。我也更新了build.gradle的任务与你提到的,重建和运行测试任务,但测试仍然不运行。 –

+0

您的测试在哪里定义? – loosebazooka

+0

也许你需要清理'testRelease'和'testDebug'的输出,因为那些看起来是实际的测试任务:http://tools.android.com/tech-docs/unit-testing-support – loosebazooka

相关问题