原创

尝试让 System.out.println() 出现在 Maven 测试输出中

温馨提示:
本文最后更新于 2024年04月12日,已超过 37 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

我试图找出为什么我的一些 JUnit 测试在从 Java 8 升级到 11 时挂起。在测试类中使用 System.out.println() 的效果正如预期的那样,在使用时将输入放入 Maven 的输出流中

这是挂起测试的位置:

@Before
public void setUp() throws Exception {
  System.out.println("Before");
  wmsDimensionCalculator = new WMSDimensionCalculator(capabilitiesManager);
  when(capabilitiesManager.getDimensionMap()).thenReturn(createDimensionMap());
  System.out.println("Between whens");
  when(capabilitiesManager.getCombinedCapabilities()).thenReturn(WmsCapabilitiesConverter.unmarshal(MOCK_CAPABILITIES_XML));
  System.out.println("End of before");
}

这将打印出“Before”和“Between Whens”,但不会打印“End of before”。所以我尝试的足以 System.out.print 放置在以下情况下被调用的方法中:

@Override
public WMSCapabilites getCombinedCapabilities() {
  System.out.println("WMS Capabilities");
  <lots of unnecessary code to the question> 
}

从本质上来说,这个系统不会打印我能找到的任何位置。它不会进入Maven输出,它似乎不会进入可靠的报告。

-如果可以的话,粘贴pom放在这里-

-Dsurefire.useFile=False

有些东西似乎导致了无限循环,或者是实际类方法内部被调用的东西,并试图找出我必须使用SOut来查找位置和原因的位置。但是,当将SOut放入实际的java类中时,不会将其放入 Maven 输出中。我不确定测试如何发挥作用,或者是否可能。

尝试将 System.out.println() 方法放在类方法中来转储信息中,但没有显示任何内容。

正文到此结束
热门推荐
本文目录