android - Gradle Test Executor使用非零退出代码完成

标签 android gradle android-gradle-plugin

将Gradle 2.12与

org.gradle.daemon=false
org.gradle.configureondemand=true
org.gradle.parallel=false

在gradle.properties中
:app:processDevDebugJavaRes UP-TO-DATE
:app:processDevDebugUnitTestJavaRes
:app:compileDevDebugUnitTestSources
:app:mockableAndroidJar
:app:assembleDevDebugUnitTest
:app:testDevDebugUnitTest
objc[16261]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined.
:app:testDevDebugUnitTest FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:testDevDebugUnitTest'.
> Process 'Gradle Test Executor 1' finished with non-zero exit value 10

当使用stacktrace运行时
Caused by: org.gradle.process.internal.ExecException: Process 'Gradle Test Executor 1' finished with non-zero exit value 10
    at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:367)
    at org.gradle.process.internal.DefaultWorkerProcess.waitForStop(DefaultWorkerProcess.java:161)
    at org.gradle.api.internal.tasks.testing.worker.ForkingTestClassProcessor.stop(ForkingTestClassProcessor.java:89)
    at org.gradle.api.internal.tasks.testing.processors.RestartEveryNTestClassProcessor.endBatch(RestartEveryNTestClassProcessor.java:63)
    at org.gradle.api.internal.tasks.testing.processors.RestartEveryNTestClassProcessor.stop(RestartEveryNTestClassProcessor.java:57)
    at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
    at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    at org.gradle.messaging.dispatch.FailureHandlingDispatch.dispatch(FailureHandlingDispatch.java:29)
    at org.gradle.messaging.dispatch.AsyncDispatch.dispatchMessages(AsyncDispatch.java:132)
    at org.gradle.messaging.dispatch.AsyncDispatch.access$000(AsyncDispatch.java:33)
    at org.gradle.messaging.dispatch.AsyncDispatch$1.run(AsyncDispatch.java:72)

使用--debug运行时:(已编辑一些测试名称)
14:41:18.772 [DEBUG] [TestEventLogger] <REDACTED>ActionBarTest STARTED
14:41:18.907 [DEBUG] [TestEventLogger]
14:41:18.907 [DEBUG] [TestEventLogger] <REDACTED>ActionBarTest > shouldRegisterTimeChangeBroadcastReceiverOnStart STARTED
14:41:23.158 [DEBUG] [TestEventLogger]
14:41:23.158 [DEBUG] [TestEventLogger] <REDACTED>ActionBarTest > shouldRegisterTimeChangeBroadcastReceiverOnStart PASSED
14:41:23.159 [DEBUG] [TestEventLogger]
14:41:23.159 [DEBUG] [TestEventLogger] <REDACTED>ActionBarTest > shouldShoBlahdAsTitle STARTED
14:41:23.666 [DEBUG] [org.gradle.messaging.remote.internal.inet.SocketConnection] Discarding EOFException: java.io.EOFException
14:41:23.667 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: FAILED
14:41:23.667 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Process 'Gradle Test Executor 1' finished with exit value 10 (state: FAILED)
14:41:23.669 [DEBUG] [TestEventLogger]
14:41:23.669 [DEBUG] [TestEventLogger] Gradle Test Run :app:testDevDebugUnitTest PASSED
14:41:23.669 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':app:testDevDebugUnitTest'
14:41:23.669 [LIFECYCLE] [class org.gradle.TaskExecutionLogger] :app:testDevDebugUnitTest FAILED
14:41:23.670 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :app:testDevDebugUnitTest (Thread[Daemon worker Thread 4,5,main]) completed. Took 5.807 secs.
14:41:23.670 [DEBUG] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] Task worker [Thread[Daemon worker Thread 4,5,main]] finished, busy: 6.945 secs, idle: 0.007 secs
14:41:23.670 [ERROR] [org.gradle.BuildExceptionReporter]
14:41:23.672 [ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build failed with an exception.
14:41:23.672 [ERROR] [org.gradle.BuildExceptionReporter]
14:41:23.672 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong:
14:41:23.672 [ERROR] [org.gradle.BuildExceptionReporter] Execution failed for task ':app:testDevDebugUnitTest'.
14:41:23.672 [ERROR] [org.gradle.BuildExceptionReporter] > Process 'Gradle Test Executor 1' finished with non-zero exit value 10

是什么原因导致exec异常? ./gradlew test经常因此错误而失败。

最佳答案

我们使用的是ACRA,它在测试运行时启动。该库具有System.exit(1)并终止了测试套件。

此错误是ACRA捕获到的其他一些错误(在我的情况下为NPE)的症状,该错误试图记录NPE并最终停止了测试执行程序。

通常,如果您遇到这种情况,请在测试期间寻找其他错误处理框架。

关于android - Gradle Test Executor使用非零退出代码完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36309151/

相关文章:

android tabs - 开始一个新的 Activity

java - 仅编译两个相似的库来生成一个 APK

android - 获取正在运行的 gradle 任务名称

android - 为什么有时需要在列表中使用 key() ?

android - 通过 Java 连接 GCM 时获取 JSON 异常

android - 如何在工具栏顶部和底部放置颜色线

gradle - gradle测试任务的执行顺序

gradle - 无法从HTTP URL应用Gradle脚本插件

maven - 搜索Gradle插件的方法

android - Gradle - 如何从 AndroidManifest 获取值?