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