ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Prasad Khambete" <>
Subject RE: AW: CUnit ant task
Date Fri, 16 Jun 2006 17:41:43 GMT


Thanks for the response and suggestions. yes, cleanup is problem 
for unit testing executables - so the exe quits at the first failure.
(of course it is not the same as having a test suite
where some tests could fail and yet others can get exercised)
but that is what we could do.

CUnit does generate reports in the same format (XML) and works with
the standard CC XSL. I have modified our XSLs a little to get some
more formatting - e.g: show a summary of tests on the main page)

Here is the sample usage - where you specify a fileset to look for 
.exes (in our project they are named as *Test*)


	<target name="target-cygwin-runtest" description="Run the tests
for Cygwin build" > <!-- target to run tests -->	
	    <echo level="info" message="${line.separator}[CC] Running
Tests using Cygwin...${line.separator}"/>
	    <property name="test.xml.dir" value="./projects/SushiTest"/>
	    <property name="build.test.dir"
value="./checkout/Sushi/Build/Targets/x86-unknown-cygwin/" />
		<delete dir="${test.xml.dir}"/>
		<mkdir  dir="${test.xml.dir}"/>		
		<echo message="${build.test.dir}" />
  	    <taskdef name="cunit"
		<cunit errorProperty="test.failed"
			   dir="${build.test.dir}" debug="true"

			<cbatchtest todir="${test.xml.dir}">
				<fileset dir="${build.test.dir}"
						 includes="**/*Test*" />
			<formatter type="brief" usefile="false" />
			<formatter type="xml" />

		<fail message="Tests failed! Check test reports.">
					<isset property="test.failed" />
property="project.failonerror" />

-----Original Message-----
From: Steve Loughran [] 
Sent: Friday, June 16, 2006 2:40 AM
To: Ant Developers List
Subject: Re: AW: CUnit ant task wrote:
>> Hello
>> In our project our unit tests are executable files. 
>> I wanted to have something like Ant's JUnit task to be used with 
>> CruiseControl.
>> For this I modified the Ant JUnit task to have a CUnit task (its a 
>> little bit of a hack because I wanted to get something that was 
>> working for us but not spend too much effort)
>> Is this something that might be useful to have in Ant ?
>> The changes to the sources and example usage is enclosed in the .zip 
>> file. Comments, suggestions and feedback is welcome.
> While I'm thinking that a <cunit> would be good as some projects using

> Ant for building their C-projects, Ant is not the right place for 
> holding that, because Ant has no c-related tasks.
> * You could open a bugzilla for AntContrib and post your patch
> * You could maintain it for yourself on a website and we could point 
> to that
> * You could open a RFE for the CUnit-Framework (similar to <junit> and

> the JUnit-Framework in
>   the future)


I am sure this will be a welcome addition to people who use CC for CI
builds of C++ stuff (I did this a few years back with cpp unit and
NUnit). However, the ant core codebase isnt the right place because we
dont do enough C/C++ work in the project to ever maintain or test it. 
Indeed, we are even working with the junit people to implement a junit4
task in their codebase, rather than in ant (it gives them more control
that way)

<cunit> It should go wherever the relevant c/cppunit framework lives (if
possible), or in some separate library (like a sourceforge project). I
think ant-contrib would be a good home if they want it, because it goes
together with the <cc> task.

I didnt know about cunit until today; I have used cppunit. it suffers a
bit from the lack of dynamic test discovery, but the real problem with
CPP testing is (a) lack of finally() to do cleanup on failure and (b)
the fact that if one test fails, it usually leaves the system in a bad
state for all the other tests. So the order you test really, really

Incidentally, if cunit could generate XML reports in the same format as
junit, <junitreport> would still be able to process them. Does it do


To unsubscribe, e-mail: For additional
commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message