[ https://jira.codehaus.org/browse/SUREFIRE-817?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tibor Digana reassigned SUREFIRE-817: ------------------------------------- Assignee: Tibor Digana > JUnit 4.7 test output is always buffered, lost if forked process exits > abnormally > --------------------------------------------------------------------------------- > > Key: SUREFIRE-817 > URL: https://jira.codehaus.org/browse/SUREFIRE-817 > Project: Maven Surefire > Issue Type: Bug > Components: Junit 4.7+ (parallel) support > Affects Versions: 2.11 > Reporter: Todd Lipcon > Assignee: Tibor Digana > > The junit47 provider and above support multi-threaded test execution, and > thus interpose a buffering layer (ConcurrentReporterManager) in between the > test output and the actual stderr/stdout. This is ostensibly to allow the > multiple threads' stderr and stdout to be demuxed nicely when the suite > completes. But, if the JVM exits abnormally (eg due to a segfault or a > System.exit() call), no output is generated. This is problematic since it's > very hard to debug the test failure! > In my opinion, the buffering layer should only be interposed _when parallel > running is enabled_. For the non-parallel case, there's no need to buffer the > output. A simple test case is to write a JUnit test which prints a line of > output to stderr and then calls System.exit(1). The output doesn't show up > anywhere. -- This message was sent by Atlassian JIRA (v6.1.6#6162)