cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ovidiu Predescu <>
Subject Re: Cocoon functional testing using Anteater
Date Tue, 09 Apr 2002 01:58:37 GMT
On Mon, 08 Apr 2002 16:30:24 -0800, Rob Jellinghaus <> wrote:

> For the Axis project (, last summer, I implemented the 
> functional-tests Ant target.  This target:
> 1) launched an HTTP server running Axis
> 2) ran several client tests against it (deploying web services, using them, 
> verifying the results, undeploying)
> 3) closed the HTTP server
> This became part of the GUMP process for Axis, leading to a system
> where one command line ("build clean functional-tests") would do a
> full rebuild of the source tree and then run multiple client-server
> tests.
> Would Anteater be usable in this kind of a configuration, where a
> parent Ant task spawns a server (presumably an Anteater server),
> runs various client tests against it, and then sends that server a
> message shutting it down?

I don't see any reason why we shouldn't be able to automatically
deploy Cocoon. 

You can use either your favorite servlet container's method to deploy
a servlet, or you can use Anteater's embedded servlet container (a
Tomcat 3.3 engine), which is used in the implementation of <listener>.

We can setup the later for quick tests, which do not depend on an
external servlet container. For this to work, we can port Tomcat 4's
manager servlet, which deploys and undeploys servlets via HTTP, to
Tomcat 3.3. I'll look into this.

> If so, I think it would be VERY useful to implement this kind of testing 
> for Cocoon.  Among other things, it could have caught the 
> AbstractValidatorAction bug that crept into 2.0.2!
> Automated functional tests are your friend....

I definitely agree! I do feel the need to see when something you
change in the code breaks somebody else's code.


> At 06:14 PM 4/4/2002 -0800, Ovidiu Predescu wrote:
> >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:
> >
> >./ 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:
> >
> >
> v=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
> >
> >
> >
> >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 <>
> > (GNU, Emacs, other stuff)
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail:
> >For additional commands, email:
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, email:

To unsubscribe, e-mail:
For additional commands, email:

View raw message