如何在Android单元测试中打开控制台输出?

问题描述:

有什么方法可以打开控制台输出中的测试日志记录吗?如何在Android单元测试中打开控制台输出?

我知道我们可以查看HTML文件中生成的测试结果并检查标准输出,但是我发现它有点不方便。

我知道,有一种方法与标准的Java插件来做到这一点:

test { 
    testLogging { 
     events "passed", "skipped", "failed", "standardOut", "standardError" 
    } 
} 

但是在Android项目中使用它会导致一个错误:

Could not find method test() 

应用的Java插件是不能接受的,当然,因为它与Android插件不兼容。

+0

你说的是哪台?所有日志都来自设备。 'Logcat'工具提取所有日志。 – eleven 2015-03-03 12:46:42

+0

对不起,也许我没有足够清楚地表达自己。我的意思是在JVM上执行的Android单元测试,从简单的终端通过gradle包装器开始(因此logcat无问题) – scana 2015-03-03 12:58:25

android { 

... 

    testOptions { 
     unitTests.all { 
     // All the usual Gradle options. 
      testLogging { 
       events "passed", "skipped", "failed", "standardOut", "standardError" 
       outputs.upToDateWhen {false} 
       showStandardStreams = true 
      } 
     } 
    } 
} 

就我而言,我跟着这个document并添加testLogging选项如上。这应该打印出在src/test文件夹下写入的单元测试的日志,但不是src/androidTest。在回答这个问题时,我使用了Android Studio 2.0预览和gradle 2.8。命令是./gradlew test./gradlew test --continue,其中运行在iTerm 2中。

+0

为了在'src/androidTest'下运行测试,我右键单击包并使用Android Studio选择'运行'测试'com.example ...'。 – ninjahoahong 2015-12-15 21:10:47

+0

谢谢!它的工作方式与预期一致! – scana 2015-12-16 19:01:01

+0

@scana尼斯,它帮助。 – ninjahoahong 2015-12-16 20:15:14

这应该这样做

android { 

... 

    testOptions.unitTests.all { 
    testLogging { 
     events 'passed', 'skipped', 'failed', 'standardOut', 'standardError' 
    } 
    } 
} 

来源:https://groups.google.com/forum/#!topic/adt-dev/LwZiKTnj8Bc

+1

唉,不适合我。 Gradle 2.6。 – 2015-08-31 19:01:40

+2

这实际上对我有用。非常感谢! – 2016-09-24 01:17:43

比@ ninjahoahong的更漂亮的解决方案(感谢Tricky Android blog)。

毗邻码到您的项目级别build.gradle添加到allprojects的身体:

​​3210
+0

不适用于我。 – 2016-09-24 01:06:12