Java 乱七八糟的junit日志,为什么会重复语句?
当我运行junit测试时,我的日志如下所示:Java 乱七八糟的junit日志,为什么会重复语句?,java,ant,junit,log4j,junit4,Java,Ant,Junit,Log4j,Junit4,当我运行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] -
[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] -------------------------------------------------------------------
通过这个链接,我看到了如何在Gradle中控制这个输出,但是必须有一种方法可以用Spring或Junit本身来控制它,对吗?我开始觉得我一直在找错地方。是否有一个ant设置可以在我的控制台中隐藏输出的标准输出和标准错误部分?我对junit不是很熟悉,但可以查看日志级别是否未设置。然后它可能默认为DEBUG,这意味着您将获得所有信息。如果是这样,请尝试将日志级别更改为警告。因此这对我来说很奇怪,但我需要在ant junit任务上设置showoutput=“false”。我的formatter嵌套元素为我提供了所需的所有输出。通过使用showoutput=“true”和formatter嵌套元素,我将输出打印两次到控制台:(
我从这个堆栈溢出问题中找到了答案:您是如何在JUnit测试中配置log4j的?我刚刚添加了一个测试用例的示例。我没有对日志做任何特殊的处理,但是我得到了所有额外的输出。我不想通过更改日志级别来掩盖这个问题,我想从pro中保留我的日志减少重复消息。我明白了。以我目前对Junit的了解,我无法回答这个问题。如果您可以提供一个带有代码的伪造测试,我可能会进一步帮助您。
@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);
}
}