使用: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
答案 0 :(得分:0)
:<module>:test UP-TO-DATE
是因为项目的输入/输出没有任何变化来触发重建。
如果要强制执行测试,可以在运行测试之前清除测试结果。 clean<Task>
是一项特殊任务,可以清除任务的输出。
./gradlew cleanTest test
还有其他选项,如果您希望测试始终运行,您可以通过修改任务的配置强制它们永远不会UP TO DATE
。在build.gradle
文件中,尝试:
test {
outputs.upToDateWhen { false }
}