JUnit5属性文件在测试运行期间导致不必要的日志记录

时间:2018-12-06 20:17:50

标签: junit5

对于使用JUnit5的项目,我已经将默认测试生命周期设置为per_class。这是在junit-platform.properties文件中完成的。但是,由于应用了此配置,因此在我的测试运行之前,现在有很多日志输出:

Dec 06, 2018 8:15:22 PM org.junit.platform.launcher.core.LauncherConfigurationParameters fromClasspathResource
INFO: Loading JUnit Platform configuration parameters from classpath resource [file:/Users/amb85/Projects/kotlin/katas/out/test/resources/junit-platform.properties].
Dec 06, 2018 8:15:22 PM org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils getDefaultTestInstanceLifecycle
INFO: Using default test instance lifecycle mode 'PER_CLASS' set via the 'junit.jupiter.testinstance.lifecycle.default' configuration parameter.

我不想看到这些日志消息。如何禁用它们或将日志级别设置为更高?

2 个答案:

答案 0 :(得分:0)

我也遇到同样的问题。一种可能的解决方案是拦截默认的JUnit5记录器(java.util.logging.LogManager)并丢弃该INFO日志。我尚未实现它,但您并不孤单。

这是我研究中的一些链接:

答案 1 :(得分:0)

在以下位置找到了答案: https://github.com/junit-team/junit5/issues/1774#issuecomment-463662553

总结: 设置“ java.util.logging.config.file”系统属性,使其指向可降低日志级别的logging.properties文件。

 tasks.withType(Test).configureEach {
  useJUnitPlatform()

  systemProperty 'java.util.logging.config.file', "${project.buildDir}/resources/test/logging-test.properties"

  testLogging {
    showStandardStreams = true
  }
}

logging-test.properties:

handlers=java.util.logging.ConsoleHandler
.level=INFO

org.junit.platform.launcher.core.LauncherConfigurationParameters.level=WARNING
org.junit.jupiter.engine.config.EnumConfigurationParameterConverter.level=WARNING