You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Falko Modler (Jira)" <ji...@apache.org> on 2021/02/20 01:11:00 UTC

[jira] [Commented] (SUREFIRE-1883) Logs get dumped to console all at once when the execution is over, instead of being printed in real time

    [ https://issues.apache.org/jira/browse/SUREFIRE-1883?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17287445#comment-17287445 ] 

Falko Modler commented on SUREFIRE-1883:
----------------------------------------

I think my problem when debugging a test (that was started by surefire) is basically the same as this one:
When you step over a log statement, you won't see it on the console, which can be very confusing! You will only see it much later.

[~kleewan] Have you tried 3.0.0-M4?

> Logs get dumped to console all at once when the execution is over, instead of being printed in real time
> --------------------------------------------------------------------------------------------------------
>
>                 Key: SUREFIRE-1883
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1883
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: Maven Surefire Plugin
>    Affects Versions: 3.0.0-M5
>         Environment: Windows 10, Java 11.0.7, Intellij IDEA 2020.3
>            Reporter: Marco Patavini
>            Priority: Major
>
> Hello,
> I'm working on a test automation project using Maven (with Surefire plugin) and JUnit 5. Since I have very long-running UI scripts (up to 20 minutes), I make intensive use of logging to the console. This is crucial to me, at least in the developing phase of each script. However, logs gets dumped all at once at the end of the execution, instead of being printed in real-time. I realize this makes perfect sense in case of parallel execution (to avoid overlapping issues), but I would like a way to disable this when executing in a serial fashion. I've searched both Surefire and JUnit documentations, but I can't seem to find a way. Any help would be appreciated. This is a very simple dummy project to reproduce the issue:
> projectRoot/pom.xml:
> {code:java}
> <?xml version="1.0" encoding="UTF-8"?>
> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
>     <modelVersion>4.0.0</modelVersion>
>     <groupId>org.example</groupId>
>     <artifactId>project</artifactId>
>     <version>1.0</version>
>     <properties>
>         <maven.compiler.source>11</maven.compiler.source>
>         <maven.compiler.target>11</maven.compiler.target>
>         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>     </properties>
>     <build>
>         <pluginManagement>
>             <plugins>
>                 <plugin>
>                     <groupId>org.apache.maven.plugins</groupId>
>                     <artifactId>maven-surefire-plugin</artifactId>
>                     <version>3.0.0-M5</version>
>                 </plugin>
>             </plugins>
>         </pluginManagement>
>     </build>
>     <dependencies>
>         <dependency>
>             <groupId>org.junit.jupiter</groupId>
>             <artifactId>junit-jupiter-engine</artifactId>
>             <version>5.7.0</version>
>             <scope>test</scope>
>         </dependency>
>     </dependencies>
> </project>{code}
> projectRoot/src/test/java/DummyTest.java:
> {code:java}
> import org.junit.jupiter.api.Test;
> public class DummyTest {
>     @Test
>     public void ConsoleLoggingTest() {
>         System.out.println("STARTING TEST...");
>         try { Thread.sleep(30000); } catch (Exception ignored) { } //SIMULATE LONG-RUNNING TASK
>         System.out.println("TEST IS FINISHED!");
>     }
> }{code}
> I use to execute tests with the {{mvn test}} command in my IDE (IntelliJ IDEA). Please note that I used {{System.out.println()}} for the sake of simplicity, but I get the same behavior using any logging library, like {{log4j}}.
> Another thing worth mentioning is that I get the correct behavior if running the tests through the integrated JUnit plugin in my IDE, instead of running them though Maven Surefire. Also, I get the same exact issue using TestNG.
> I can remember having a similar setup a couple of years ago (Surefire 2.x + JUnit 4) and I've never experienced this issue. Something must have been changed, but I can't find any useful information in the docs. I'm afraid I'm missing something obvious.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)