| Calling Ant from a Java main? | Calling Ant from a Java main? 2004-02-13 - By DDU DUQUENNOY Didier
Hi,
I'm (still) trying to automate the run of the junit tests of all my modules, running Ant 1.6.0 on a Windows 2000 machine. Each module has a build.xml script with a 'test' task defined. The test task first compile the classes and then run a junit task which outputs a XML file. I want to be able to invoke all these tasks and then build a report using <junitreport>.
The problem I'm facing are: - if a module doesn't compile, I want the next module to be tested. - if a module doesn't compile I'd like to be able to see it in the final report
I first thought of a main script like this :
<target name="runtests" depends="clean"> <ant dir="${root}/module1" target="test"/> <ant dir="${root}/module2" target="test"/> [...] </target>
but it isn't OK because the run will stop if a module doesn't compile.
So I though of writing a main java class to call my ant scripts. I should then be able to detect the failure of a test a do what I want then. Here are the techniques I tried:
- use java.lang.Runtime.exec(<cmd line>) : I go asynchronous and I can't check the state of the run
- use org.apache.tools.ant.launch.Launcher : the first script runs, but it seems that there is a System.exit() after :-(
- use or a ProjectHelper to build the project : ProjectHelper.getProjectHelper(); Project project = new Project(); helper.parse(project, xmlFile); Target target = (Target)targetTable.get("test"); target.execute();
but I get an error "Could not create task or type of type: junit". But junit .jar and all the contents of Ant1.6/lib is in my classpath
- use of org.apache.tools.ant.taskdefs.Ant to simulate a <ant dir="${root} /module1" target="test"/> : Ant antTask = new Ant(); antTask.setProject(new Project()); antTask.setAntfile(xmlFile); antTask.setTarget("test"); antTask.execute();
but I get an error "Could not create task or type of type: property". (???)
Well, how can I do the trick?
Didier D
_______________________________________________________________________________ __________________________ Ce message (et toutes les pi?ces jointes) sont confidentiels ; son contenu ne repr?sente en aucun cas un engagement de la part de DEXIA SOFAXIS. Toute publication, utilisation ou diffusion, m?me partielle, doit ?tre autoris?e pr ?alablement par l'?metteur.
Si vous n'?tes pas destinataire de ce message, merci d'en avertir imm?diatement l'exp?diteur.
Conform?ment aux dispositions de la loi n? 78-17 du 6 janvier 1978 relative ? l 'informatique, aux fichiers et aux libert?s, vous pouvez obtenir communication et, le cas ?ch?ant, rectification ou suppression des informations vous concernant en vous adressant ? DEXIA SOFAXIS - Route de Creton - 18110 VASSELAY
_______________________________________________________________________________ __________________________ Consultez notre site internet http://www.sofaxis.com
--------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscribe@(protected) For additional commands, e-mail: user-help@(protected)
|
|
 |