Eclipse Java控制台:为什么有时没有输出?

Eclipse Java控制台:为什么有时没有输出?,java,eclipse,Java,Eclipse,我经常有这样的经历,Eclipse中的Console视图会给出令人困惑的结果。对于大多数混乱(比如在一些标准输出之间写入错误输出),但对于一种类型,我根本无法生存。有时您会遇到一个System.out.println()位于代码中的某个位置,您可以验证sysout之前的代码和之后的代码是否将被执行,但您仍然不会看到任何结果打印到控制台。为什么呢 目前,我在JUnit4测试中看到了这一点(但这不是第一次)。 我的测试如下所示: @Test public void testSomething(){

我经常有这样的经历,Eclipse中的Console视图会给出令人困惑的结果。对于大多数混乱(比如在一些标准输出之间写入错误输出),但对于一种类型,我根本无法生存。有时您会遇到一个
System.out.println()位于代码中的某个位置,您可以验证
sysout
之前的代码和之后的代码是否将被执行,但您仍然不会看到任何结果打印到控制台。为什么呢

目前,我在JUnit4测试中看到了这一点(但这不是第一次)。 我的测试如下所示:

@Test
public void testSomething(){
  //prep
  ...
  String expected = ...
  //exec
  String actual = executeTestcase();
  //assert
  System.out.println(Formatter.doSomeformatting(actual));
  Assert.assertEquals(expected, actual);
}

可能您没有选择正确的控制台?


也许您没有选择正确的控制台?

在我的例子中,我也可以在TestCase和TestSuite中使用assertEquals和所有类似的东西,但是当您想在普通程序中使用assert时,您需要启用assert(默认情况下禁用)

要启用断言,请选择文件->运行方式->运行配置->选择参数选项卡,其中有标记为VM参数的文本框。在此文本框中编写以下命令:
-ea


来源:今天在我同事的计算机上解决了同样的问题。

在我的情况下,我也可以在TestCase和TestSuite中使用assertEquals和所有类似的东西,但是当你想在普通程序中使用assert时,你需要启用assert(默认情况下禁用)

要启用断言,请选择文件->运行方式->运行配置->选择参数选项卡,其中有标记为VM参数的文本框。在此文本框中编写以下命令:
-ea


来源:今天在我同事的计算机上解决了相同的问题。

在我的情况下,以前的程序没有终止,它的控制台仍在运行。我不得不手动终止该控制台,viola再次开始在控制台上获取输出。

在我的情况下,以前的程序没有终止,它的控制台仍在运行。我不得不手动终止该控制台,viola再次开始在控制台上获取输出。

您在使用断言之前启用了断言吗?@Logan否则我对JUnit4测试没有问题。如果导入junit.framework.Assert,然后将代码作为普通测试套件运行,我认为不需要专门启用它们。在使用它们之前是否启用了断言?@Logan否则我对JUnit4测试没有问题。如果您导入
junit.framework.Assert
,然后将代码作为普通的测试套件运行,我认为您不需要特别启用它们。我想是的,但我会尝试在下次看到该问题时验证这一点!我想是的,但我试图在下次看到这个问题时验证一下!从阅读你的文本来看,如果你认为答案已经标记为解决方案,那就不清楚了。是吗?从阅读你的课文来看,如果你认为答案已经标记为解决方案,那就不清楚了。是吗?