如何使用JUnit测试显示Android日志记录输出(使用带有仿真器的本机JUnit)

use*_*637 5 junit android unit-testing slf4j

我正在使用JUnit 4编写Android测试用例(这些测试不使用模拟器并且作为本机测试运行).在我的代码中,我使用SL4J进行日志记录,但是当我运行单元测试时,我无法看到任何日志记录输出.例如以下语句:

  private static final Logger logger = LoggerFactory.getLogger(AClass.class);
  logger.warn("log output not visible in unit test");
Run Code Online (Sandbox Code Playgroud)

关于是否可以在单元测试中访问记录器输出的任何想法?

问候,

Jar*_*ows 6

我之前已经回答了这个问题,但我现在找不到答案的链接.

这是Android gradle插件解决方案:

android {
  // ...

  testOptions.unitTests.all {
    testLogging {
      events 'passed', 'skipped', 'failed', 'standardOut', 'standardError'
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我用于任何Gradle测试的解决方案:

tasks.withType(Test) {
    testLogging {
        exceptionFormat 'full'
        showCauses true
        showExceptions true
        showStackTraces true
        showStandardStreams true
    }
}
Run Code Online (Sandbox Code Playgroud)