You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by bu...@apache.org on 2008/03/04 18:42:40 UTC
DO NOT REPLY [Bug 44530] New: junit task with forkmode=
once and xml formatter does not save all system.out
https://issues.apache.org/bugzilla/show_bug.cgi?id=44530
Summary: junit task with forkmode=once and xml formatter does not
save all system.out
Product: Ant
Version: 1.7.0
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Optional Tasks
AssignedTo: notifications@ant.apache.org
ReportedBy: mrosett@alumni.ucsd.edu
I am running the junit task with forkmode="once" and the xml formatter. It
seemsthe xml output and subsequent report generation only contain system.out
for the first test class that is ran. If I set showoutput="true" I have the
same problem (system.out is not in every xml output) but the console output
shows system.out for every test class. Here's my junit task definition:
<junit fork="true" forkmode="once" showoutput="true">
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
DO NOT REPLY [Bug 44530] junit task with forkmode=once and xml
formatter does not save all system.out
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=44530
Eric Anderson <ej...@google.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ejona@google.com
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
DO NOT REPLY [Bug 44530] junit task with forkmode=once and xml
formatter does not save all system.out
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=44530
--- Comment #2 from willem.verstraeten@gmail.com 2011-04-19 08:15:08 EDT ---
Created an attachment (id=26906)
--> (https://issues.apache.org/bugzilla/attachment.cgi?id=26906)
testcase reproducing the problem using java.util.logging
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
DO NOT REPLY [Bug 44530] junit task with forkmode=once and xml
formatter does not save all system.out
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=44530
Stefan Bodewig <bo...@apache.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEEDINFO |RESOLVED
Resolution| |WORKSFORME
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
DO NOT REPLY [Bug 44530] junit task with forkmode=once and xml
formatter does not save all system.out
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=44530
willem.verstraeten@gmail.com changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
Resolution|WORKSFORME |
--- Comment #3 from willem.verstraeten@gmail.com 2011-04-19 08:15:21 EDT ---
It is easy to reproduce this with JUL (java.util.logging). JUL also caches a
reference to System.err.
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
DO NOT REPLY [Bug 44530] junit task with forkmode=once and xml
formatter does not save all system.out
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=44530
Dave Latham <ap...@davelink.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |apache.org@davelink.net
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
DO NOT REPLY [Bug 44530] junit task with forkmode=once and xml
formatter does not save all system.out
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=44530
--- Comment #4 from Eric Anderson <ej...@google.com> 2011-11-17 00:54:58 UTC ---
I just implemented a workaround for this bug in my own codebase by using a
formatter created for the task (a la
org.apache.tools.ant.taskdefs.optional.junit.TearDownOnVmCrash). My workaround
is for users of java.util.logging.
The code for the formatter is available at (I'll add it as an attachment as
well):
http://code.google.com/p/plexi/source/browse/test/JUnitLogFixFormatter.java
Use it by adding an additional formatter tag to your build.xml:
<junit...
...
<formatter classname="JUnitLogFixFormatter" usefile="false"/>
...
</junit>
At the beginning of each test, the code looks at the root Logger and replaces
any ConsoleHandlers it finds with a new ConsoleHandler (and copies over the
configuration). ConsoleHandler caches System.err during its constructor, so
constructing a new instance is required. After the test completes, the original
handlers are replaced back into the root Logger.
For my codebase this seems to work, but YMMV.
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
DO NOT REPLY [Bug 44530] junit task with forkmode=once and xml
formatter does not save all system.out
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=44530
willem.verstraeten@gmail.com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |willem.verstraeten@gmail.co
| |m
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
DO NOT REPLY [Bug 44530] junit task with forkmode=once and xml
formatter does not save all system.out
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=44530
--- Comment #5 from Eric Anderson <ej...@google.com> 2011-11-17 00:56:28 UTC ---
Created attachment 27961
--> https://issues.apache.org/bugzilla/attachment.cgi?id=27961
JUnitLogFixFormatter.java
Workaround formatter for java.util.logging users
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
DO NOT REPLY [Bug 44530] junit task with forkmode=
once and xml formatter does not save all system.out
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=44530
Peter Reilly <pe...@apache.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |NEEDINFO
--- Comment #1 from Peter Reilly <pe...@apache.org> 2008-03-22 16:44:28 PST ---
I have tested this and do not see the problem
build file:
<project name="x" default="run">
<target name="run">
<path id="t.path">
<path path="build/classes"/>
<fileset dir="lib" includes="*.jar"/>
</path>
<mkdir dir="build/classes"/>
<mkdir dir="build/test/reports"/>
<javac srcdir="src" destdir="build/classes"
target="1.5" source="1.5" debug="yes"
classpathref="t.path"/>
<junit fork="true" forkmode="once" showoutput="true">
<formatter type="brief" usefile="false"/>
<classpath refid="t.path"/>
<formatter type="xml"/>
<batchtest todir="build/test/reports">
<fileset dir="src" includes="**/*Test.java"/>
</batchtest>
</junit>
</target>
<target name="clean">
<delete dir="build"/>
</target>
</project>
and the java files:
peter/T1TEst.java:package peter;
import org.junit.*;
public class T1Test {
@Test
public void t1() {
System.out.println("T1Test::t1");
}
}
and
package peter;
import org.junit.*;
public class T2Test {
@Test
public void t2() {
System.out.println("T2Test::t2");
}
}
The xml reports contain the stdout from each test.
I have seen something similar with (shudder) Log4j
At the each of each test, the std output copy is closed
*unless* one uses the follow attribute in the log4j.properties
file.
# attributes for stdout appender
# need to set follow for stdout as it gets moved around in junit tests
log4j.appender.STDOUT.follow=true
Setting to NEEDINFO, it would be nice to have a complete
tar.gz or zip file showing the problem.
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.