From: SourceForge.net <no...@so...> - 2008-07-30 19:04:26
|
Feature Requests item #1913115, was opened at 2008-03-12 18:03 Message generated for change (Comment added) made by dsaff You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=365278&aid=1913115&group_id=15278 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Pending Resolution: None Priority: 5 Private: No Submitted By: Alex (toalexsmail) Assigned to: Nobody/Anonymous (nobody) Summary: TextListener improvement Initial Comment: Currently TextListener on every event simply writes to standard output (or to PrintWriter). If junits or application aslo writes its logs to standard output then this output is mixed. For example, failures will be written inside the logs of the application and not in the end. Moreover, if there is some activity in @AfterClass that also prints to the standard output than this will be written down AFTER summary of the Junit. I have partial solution to this situation. TextListener (or a new class, say ConsoleListener) should create new PrintWriter(new StringWriter()) and collect the result their. On testRunFinished() it should flush the information from StringWriter to the PrintStream that received in the constructor (String.out for example). This solution doesn't solve situation when there is some writing to the standard output in @AfterClass. ---------------------------------------------------------------------- >Comment By: David Saff (dsaff) Date: 2008-07-30 15:04 Message: Logged In: YES user_id=325156 Originator: NO Alex, Do you need changes to JUnit classes to do this, or can you get it by implementing a custom listener? As Kent has said, some developers depend on the current behavior, so we shouldn't change the default. ---------------------------------------------------------------------- Comment By: Alex (toalexsmail) Date: 2008-04-30 21:36 Message: Logged In: YES user_id=2034775 Originator: YES I have wrote unitests (also I did some minor fix). I failed to write automatic unitest for FlushedPrintStreamListener, so I add manual one. Run FlushedPrintStreamListenerTest and you will see nothing. In the getTestSystem() change new TestSystem(false); to new TestSystem(); and you will see output. Perhaps, there is bug in LoggerOutputStream, but I really such class. Some general notes: * I took some class from JUnit and changed it. You can find them in the patch. * When I wrote unitest I took TextListenerTest as a basis, you can merge my changes to the existing code. * My unitests can be improved, but they are enough to show my point. File Added: RunListenerTest.zip ---------------------------------------------------------------------- Comment By: Kent Beck (kbeck) Date: 2008-04-30 11:08 Message: Logged In: YES user_id=117320 Originator: NO Please add a failing test case. That will help me see what you mean. ---------------------------------------------------------------------- Comment By: Alex (toalexsmail) Date: 2008-04-29 03:23 Message: Logged In: YES user_id=2034775 Originator: YES Actually with all listeners you will see output immediately after test execution is finished. The only difference is in testRunFinished(). If you will use PrintStreamListener you will see output immediately and with FlushedPrintStreamListener you will see it after @AfterClass will finished, that, IMHO, is more onveniently. ---------------------------------------------------------------------- Comment By: Kent Beck (kbeck) Date: 2008-04-28 20:26 Message: Logged In: YES user_id=117320 Originator: NO People depend on the incremental output from the TextListener to watch the progress of tests. Waiting until the tests are finished before printing anything will eliminate this use. On balance, I prefer to keep the interface as it stands. ---------------------------------------------------------------------- Comment By: Alex (toalexsmail) Date: 2008-04-28 19:30 Message: Logged In: YES user_id=2034775 Originator: YES I have fixed bug in the path and removed the old one. File Added: ListenetEnhancement.zip ---------------------------------------------------------------------- Comment By: Alex (toalexsmail) Date: 2008-04-28 18:09 Message: Logged In: YES user_id=2034775 Originator: YES I have been implementated some listener to fulfill this requirement. See the attachment. See also discussion at http://tech.groups.yahoo.com/group/junit/message/20361 File Added: ListenerEnhancement.zip ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=365278&aid=1913115&group_id=15278 |