<project name="mybuild" basedir="."> <target name="main"> <loadproperties srcFile="mybuild.properties"/> <property name="result" value="Hello from mybuild | ${file.var}"/> </target> </project>
Testing build.xml itself with AntUnit
TweetPosted on Wednesday Jan 28, 2015 at 03:27PM in Technology
In my prevous entry I used AntUnit as a custom task unit testing framework. this time I’d try it for testing build.xml file itself (no custom tasks). it enables with antcallback
task which is part of ant-contrib.
Test target is following. simply loads a properties file, then set a property named result
which will be asserted in the caller (test case).
Test case is fairly simple as follows. it imports the test target and invoke a target with antcallback
, then acquire a property in the calling target. then assert whether the property is set as expected. additionally, it puts a parameter named basedir
to enable loading of mybuild.properties
which is placed in the same directory to mybuild.xml
.
<project name="mybuildTest" xmlns:au="antlib:org.apache.ant.antunit" xmlns="antlib:org.apache.tools.ant"> <taskdef resource="net/sf/antcontrib/antcontrib.properties"/> <import file="${project.build.outputDirectory}/mybuild.xml"/> <target name="setUp"> <echo>setup</echo> </target> <target name="test1"> <antcallback target="mybuild.main" return="result"> <!-- intended to enable loading mybuild.properties --> <param name="basedir" value="${project.build.outputDirectory}"/> </antcallback> <au:assertTrue> <equals arg1="Hello from mybuild | Hello from mybuild.properties" arg2="${result}"/> </au:assertTrue> </target> <target name="tearDown"> <echo>tearDown</echo> </target> </project>
Entire the project is available in my GitHub repository. you can test it on your environment easily with mvn clean test
because Maven collects all of dependencies.
References: