【问题标题】:Cluttered junit logs, why does it repeat statements?杂乱的junit日志,为什么会重复语句?
【发布时间】:2015-08-13 20:51:36
【问题描述】:

当我运行 junit 测试时,我的日志如下所示:

[junit] Testcase: testSomething1 took 0.546 seconds
[junit] <statement 1>
[junit] <statement 2>
[junit] <statement 3>
[junit] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.265 sec
[junit] -----------------------Standard Output-----------------------------
[junit] <new statement 1>
[junit] <new statement 2>
[junit] <statement 1>
[junit] <statement 2>
[junit] <statement 3>
[junit] -------------------------------------------------------------------

我想删除重复的语句 1-3,但我不知道如何。

示例测试用例:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = { MyConfig.class})
public class MyTestClass
{
   @Autowired
   private ClassIWantToTest testee;

   @Test
   public void testCase1()
   {
      boolean bool = testee.callFunc1();
      Assert.assertTrue(bool);
   }
}

从这个链接,我看到了如何在 Gradle 中控制这个输出,但是必须有一种方法可以用 Spring 或 Junit 本身来控制它,对吗? LINK 我开始认为我一直在找错地方。是否有 ant 设置可以在我的控制台中隐藏输出的标准输出和标准错误部分?

【问题讨论】:

  • 您如何在 JUnit 测试中配置 log4j?
  • 我刚刚添加了一个我的测试用例的示例。我没有对日志记录做任何特别的事情,但我得到了所有额外的输出

标签: java ant junit log4j junit4


【解决方案1】:

所以这对我来说很奇怪,但我需要在我的 ant junit 任务上设置 showoutput="false"。我的格式化程序嵌套元素为我提供了我需要的所有输出。通过同时拥有 showoutput="true" 和格式化程序嵌套元素,我将输出打印两次到我的控制台:(

我从这个堆栈溢出问题中发现了这一点:LINK

【讨论】:

    【解决方案2】:

    我对 junit 不是很熟悉,但是看看日志级别是否未设置。然后它可能会默认为 DEBUG,这意味着你会得到一切。如果是这样,请尝试将日志级别更改为 WARN。

    【讨论】:

    • 我不想通过更改我的日志级别来掩盖问题,我想防止我的日志产生重复的消息。
    • 我明白了。以我目前对 Junit 的了解,我无法回答这个问题。如果您可以提供带有代码的虚构测试,我可能会为您提供进一步的帮助。
    猜你喜欢
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    相关资源
    最近更新 更多