Stefan has blogged something [1] about that :-) Jan
[1] "Re-Run Tests that Failed" http://stefanbodewig.blogger.de/stories/228399/ > -----Ursprüngliche Nachricht----- > Von: Dominique Devienne [mailto:[EMAIL PROTECTED] > Gesendet am: Montag, 28. Februar 2005 18:28 > An: Ant Users List > Betreff: RE: if junit batchtest is skipped also skip junitreport? > > This is an elegant solution IMHO. > > It has one little flaw, which really isn't; a test that crashes the VM > (can happen with native code and JNI) prevents the XML file from being > generated. So using forkmode="perTest", you'd be missing one > or more of > these XML files, and if all tests were of this category, you could in > theory have run some tests, all of them failing. But what's > the point of > running the report when you have no input ;-) Which is why I say it's > not really a flaw. > > The fact that <junit> missed such 'crashing' failures may have been > fixed I think, as I vaguely recall a bug about this. --DD > > > -----Original Message----- > > From: Keith Hatton [mailto:[EMAIL PROTECTED] > > Sent: Monday, February 28, 2005 11:17 AM > > To: Ant Users List > > Subject: RE: if junit batchtest is skipped also skip junitreport? > > > > I recently did this but was unable to do it with a purely > macrodef-based > > approach. > > The gist of my solution was to define the fileset generated > by Junit. > > > > <fileset id="junit.raw" dir="${blah}" includes="TEST-*.xml"/> > > > > Then check if it was actually there: > > > > <target name="junitcheck"> > > <!-- did we actually run any unit tests? --> > > <pathconvert targetos="windows" refid="junit.raw" > > property="report.junit" setonempty="false"/> > > </target> > > > > Then only do the junitreport if the property was set: > > > > <target name="junitreports" depends="junitcheck" > if="report.junit"> > > <junitreport> > > <fileset refid="junit.raw"/> > > <report format="frames" todir="${report}"/> > > </junitreport> > > </target> > > > > Hope thie helps, and if anyone has more elegant solutions I'd be > > delighted to hear them! > > > > Keith > > > > > > > > -----Original Message----- > > From: Jon Jagger [mailto:[EMAIL PROTECTED] > > Sent: 28 February 2005 15:03 > > To: user@ant.apache.org > > Subject: if junit batchtest is skipped also skip junitreport? > > > > > > I have a package based ant setup which uses the following... > > > > <macrodef name="run-test" > > <attribute name="package"//> > > ... > > <sequential> > > ... > > <junit errorProperty="test.failed" ...> > > ... > > <formatter type="xml"/> > > <batchtest todir="..." > > unless="@{package}.tests.uptodate"> > > ... > > <batchtest> > > </junit> > > ... > > <fail if="test.failed"/> > > ... > > <junitreport todir="....> > > ... > > </junitreport> > > </sequential> > > </macrodef> > > > > This works but I'd like to run the junitreport only if batchtest > > actually runs some tests. In other words, I like an unless on > > junitreport to mirror the unless on batchtest. But there > isn't one and > I > > > > can't see an obvious answer in chapter 4 of Erik & Steve's excellent > ant > > > > book. Is there a way to do this without resorting to the <if> > > ant-contrib? > > > > > > Also, I'm using a flag file to indicate whether a test-run passed or > > failed. That way I can rerun the tests even if none of the > code being > > tested or the code doing the tests has changed. Exactly as Erik and > > Steve suggest in chapter 4 (pages 106-108). Is there a way > to stop the > > <delete> task from echoing a successful deletion message to the > console? > > > > Many thanks > > Jon > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] >