I've finally decided to take time to implement functional testing in
Cocoon using Anteater, a tool Jeff Turner and I worked on since the
end of last year.

Using Anteater you can write regression tests against a deployed
Cocoon application. You can fire HTTP requests, and check for various
things in the response, using regular expressions, XPath and other
things. Anteater is more powerful than this, it can also act as the
server side, allowing you to test the client side of your application.

For now the integration is done specifically for Schecoon, but it
should be trivial to adapt to the normal Cocoon. To run the tests you
simply type in the schecoon/ directory:

./build.sh test

This spawns off Anteater on the tests/anteater/all-tests.xml file. The
default task in this file will search for test files located in
tests/anteater and will run them automatically.

To write a test you create a "normal" Ant file, which will actually
contain Anteater extended tasks. The file should contain only one
target, whose name is the same as the file's name, except for the .xml
suffix. This target will be automatically picked up by the
all-tests.xml file and executed. Checkout the calc.xml test for an
example:

http://cvs.apache.org/viewcvs.cgi/xml-cocoon2/src/scratchpad/schecoon/tests/anteater/calc.xml?rev=1.3&content-type=text/vnd.viewcvs-markup

This file tests the Calculator example written using the brand new
control flow layer in Schecoon.

To run the sample, you first need to install Anteater from

http://sourceforge.net/projects/aft/

At this point, the Anteater documentation is very crude, and there's
no Web page, besides the Sourceforge project one. If you know Ant it
should be fairly easy to learn the new commands introduced by
Anteater.

Please let me know if you're interested in getting more info on
Schecoon or Anteater.

Have fun,
-- 
Ovidiu Predescu <[EMAIL PROTECTED]>
http://www.geocities.com/SiliconValley/Monitor/7464/ (GNU, Emacs, other stuff)

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

Reply via email to