Junit 如何处理日志记录和单元测试覆盖率?

Junit 如何处理日志记录和单元测试覆盖率?,junit,log4j,line,code-coverage,Junit,Log4j,Line,Code Coverage,如何处理这一问题: 我有很多单元测试的课程 这些类使用具有以下级别的Log4j:调试、信息、错误 当我简单地运行单元测试并根据配置计算覆盖率时,我不会遍历所有的日志语句。我使用if(logger.isDebugEnabled())… 在过去,当应用程序开始在生产中失败时,我已经遇到了问题,我们更改了日志级别do DEBUG以获得更多的洞察力,但这导致了NullPointerExceptions(当然是糟糕的编码) 理论上,我们可以使用不同级别的日志运行所有测试 是否有任何明智的方法或任何

如何处理这一问题:

  • 我有很多单元测试的课程
  • 这些类使用具有以下级别的Log4j:调试、信息、错误
当我简单地运行单元测试并根据配置计算覆盖率时,我不会遍历所有的日志语句。我使用
if(logger.isDebugEnabled())…

  • 在过去,当应用程序开始在生产中失败时,我已经遇到了问题,我们更改了日志级别do DEBUG以获得更多的洞察力,但这导致了
    NullPointerException
    s(当然是糟糕的编码)

  • 理论上,我们可以使用不同级别的日志运行所有测试


是否有任何明智的方法或任何有助于解决此问题的工具?

如评论中所建议:

使用特定于测试的log4j配置来设置调试级别

你还提到:

我们更改了日志级别do DEBUG以获得更多信息,但这导致了
NullPointerException
s


那听起来像个虫子。识别这样的bug是整个测试的重点:现在您可以修复它们。

为什么不在
DEBUG
level中运行您的testsuite?好吧,使用特定于测试的log4j配置,将level设置为DEBUG。