On Mon, 23 Jan 2006, Ninju Bohra <[EMAIL PROTECTED]> wrote:

> I too created test cases for my build files (actually they are build
> files for testing my custom tasks, but they are still build files).
>  
> I used the BuildFileTest class as the base class (that my JUnit
> classes extended from).

This is the traditional way Ant used itself, but this is going to be
replaced by AntUnit step by step.  The difference is that you don't
write a Java class at all.

Say I want to test the <touch> task and validate it creates a file, I
write a build file:

<project xmlns:au="antlib:org.apache.ant.antunit">
  <property name="foo" value="foo"/>

  <target name="tearDown">
    <delete file="${foo}" quiet="true"/>
  </target>

  <target name="testTouchCreatesFile">
    <au:assertFileDoesntExist name="${foo}"/>
    <touch file="${foo}"/>
    <au:assertFileExists name="${foo}"/>
  </target>
</project>

> The class provided some convience methods for reading the build.xml,
> initializing the project, and accessing property and log output
> (very useful when verified build behavior).

AntUnit provides a generic <assert> task (with a nested condition) as
well as a bunch of macrodef'ed asserts and

> but I never quite thought of "testing" a build script with unit
> tests (it seems a bit recursive as you would need a build script to
> invoke the build you are testing...)

an <antunit> task to do just that.  The task takes a bunch of build
files and runs the targets whose names start with "test", with special
handling for targets names setUp and tearDown.  And it provides for
test listeners.

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to