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: [email protected]
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]