I'm not very good with Ant, but we're using it as a build tool. Right now, we can run "ant test" and it'll run through all the unit tests.
However, I'd love to be able to do something like ant test some_module
and have it accept some_module
as a parameter, and only test that.
I haven't been able to find how to pass command line args to Ant - any ideas?
Ant really doesn't have parameters_ for the build file. I can think of a few ways to do this:
Use a special target to specify the tests. You can use the
<for/>
task from AntContrib to allow you to specify multiple tests. You'll need to download the Ant-Contrib jar file. I recommend placing it inside your project under the `${basedir}/antlib/antcontrib" directory. That way, when others checkout your project, they get the needed Ant-Contrib jar file.You cab now run multiple tests like this:
What about using some conditional in your test target and the specifying
-Dcondition=true
?Adapted a bit from the ant faq.
I tried the solutions posted here for the very same original question. Yes just use
ant -D<arg_name>
. THe-D
is a "keyword" I guess. I'm no ant expert and have not read the manuals in detail. Then inside the ant XML files can be accessed like:${arg_name}
For instance you can have an argument name like:
arg.myarg
, so in XML${arg.myarg}
.You can define a property on commandline when invoking ant:
Then you can use it as any other ant property:
Have a look at Ant's manual.
Lest say you have two modules in your project ModuleX and ModuleY where ModuleX has 2 testcases to run and ModuleY with 10 testcases.
You could do something like this :
For the arguments , there is Facility called property. You need to set the property. As in ANT plain arguments is taken as target name.