Java IntelliJ Idea,Gradle Junit测试-输出显示空行

Java IntelliJ Idea,Gradle Junit测试-输出显示空行,java,intellij-idea,junit,Java,Intellij Idea,Junit,我正在运行Idea 2020.1.3 Ultimate 我用Gradle 6.5.1和Junit 5.6.2创建了一个Gradle项目 当运行一个只将输出打印到屏幕上的简单测试时,我看到Idea在每一行后面都添加了一个空行。这使得分析结果变得非常困难,因为它使输出增加了两倍和三倍 从命令行运行Gradle时不会恢复此问题 它在使用TestNG而不是JUnit运行时进行恢复 JUnit4版本也恢复了它 有什么想法吗 测试代码: @Test public void testDummy(){ Sy

我正在运行Idea 2020.1.3 Ultimate

我用Gradle 6.5.1和Junit 5.6.2创建了一个Gradle项目

当运行一个只将输出打印到屏幕上的简单测试时,我看到Idea在每一行后面都添加了一个空行。这使得分析结果变得非常困难,因为它使输出增加了两倍和三倍

从命令行运行Gradle时不会恢复此问题

它在使用TestNG而不是JUnit运行时进行恢复

JUnit4版本也恢复了它

有什么想法吗

测试代码:

@Test
public void testDummy(){
  System.out.println("line1");
  System.out.println("line2");
  System.out.println("line3");
}
测试输出(空白行来自输出):

build.gradle
文件:

plugins {
  id 'java'
  id 'idea'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
  mavenCentral()
}

dependencies {
  // https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine
  testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.6.2'
}

test {
  useJUnitPlatform()
  testLogging {
    outputs.upToDateWhen {false}
    showStandardStreams = true
  }
}

我在控制台上运行了您的测试,一切正常。看起来IntelliJ正在将这些空行添加到输出中。如果您想摆脱它们,请考虑从控制台(或英特利终端)运行测试。

无论如何,我找到了一种方法来欺骗IntelliJ停止向输出中添加空行。不要使用
System.out.println
,而是使用
System.out.print
然后
刷新打印流。您应该使用一个简单的函数来完成此操作,如:

私有无效日志(字符串消息){
系统输出打印(消息);
System.out.flush();
}
然后调用

log(“第1行”);
日志(“第2行”);
日志(“第3行”);
将生成以下输出:

...
> Task :test




line1
line2
line3

这是一个好主意。该修复计划于2020年3月发布。

事实上,从命令行运行不会恢复问题。但是,当我尝试
print
而不是
println
然后刷新时,仍然会得到这些空行。(我正在使用Windows 10)我可能已经找到了另一种方法。尝试使用
gradle-q test
运行测试,该测试将日志级别设置为静默。您可以使用IntelliJ“运行任何东西”菜单(默认情况下,双击ctrl键)并输入命令来完成此操作。iTeliJ仍然会显示格式化的结果,空白行应该消失了。
...
> Task :test




line1
line2
line3