IntelliJ Idea, Gradle Junit Test - вывод показывает пустые строки - PullRequest
0 голосов
/ 11 июля 2020

Я использую Idea 2020.1.3 Ultimate.

Я создал проект Gradle с Gradle 6.5.1 и Junit 5.6.2.

При запуске простого теста, который выводит только выходные данные на экране я вижу, что после каждой строки Idea добавляет пустую строку. Это делает анализ результатов очень трудным, так как он удваивает и утраивает результат.

Эта проблема не восстанавливается при запуске Gradle из командной строки.

Вместо этого восстанавливается при запуске с TestNG из JUnit.

Он также был восстановлен с помощью версий JUnit 4.

Есть идеи?

Тестовый код:

@Test
public void testDummy(){
  System.out.println("line1");
  System.out.println("line2");
  System.out.println("line3");
}

Тестовый вывод (Пустой строки взяты из вывода):

Output:

Testing started at 13:29 ...

> Task :compileJava UP-TO-DATE
> Task :processResources NO-SOURCE
> Task :classes UP-TO-DATE
> Task :compileTestJava UP-TO-DATE
> Task :processTestResources NO-SOURCE
> Task :testClasses UP-TO-DATE

> Task :test

 


line1

line2

line3
    
 

 


Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.5.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 839ms
3 actionable tasks: 1 executed, 2 up-to-date
13:29:19: Task execution finished ':test --tests "org.example.tests.DummyTest.testDummy"'.

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
  }
}

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Это известная ошибка . Исправление запланировано на 2020.3.

0 голосов
/ 11 июля 2020

Я запустил ваши тесты с консоли, и все было правильно. Похоже, IntelliJ добавляет эти пустые строки в ваш вывод. Если вы хотите избавиться от них, рассмотрите возможность запуска тестов с консоли (или терминала IntelliJ).

В любом случае, я нашел способ обмануть IntelliJ, чтобы он не добавлял пустые строки в ваш вывод. Вместо System.out.println используйте System.out.print, а затем flush PrintStream. Для этого вы должны использовать простую функцию, например:

private void log(String message) {
    System.out.print(message);
    System.out.flush();
}

, а затем вызвать

log("line1");
log("line2");
log("line3");

, которая выдаст следующий результат:

...
> Task :test




line1
line2
line3
...