Docs for: v1.7.2 | v1.7 Last update: March 26 2006

# RunServerTests Task The runservertests task provides support for starting up a servlet container to run in-container tests, and shutting it down again after the tests have completed. This task will perform several actions, in the following order: Check if a server is already started by constantly trying to call the test URL defined by the `testurl` attribute. If a server is not running, call the Ant target defined by the `starttarget` attribute. This target is supposed to start your container. The runservertests task will then constantly poll the server by calling the test URL until the server answers back. It will then call the Ant target defined by the `testtarget` attribute. This target is supposed to run the unit tests. This is usually implemented by using the Ant `junit` task. Once the tests are finished (i.e. when the `testtarget` has finished executing), it will then call the Ant target defined by the `stoptarget` attribute. This target is supposed to stop the container. The runservertests task will then constantly poll the server by calling the test URL until the server stops answering, at which point it will consider the server to be stopped. Note that the `stoptarget` will only get called if the server was not already started when the runservertests task began executing. This is to allow keeping running servers for intensive debugging phases. The runservertests task is generic in the sense that you are free to define the `starttarget`, `testtarget` and `stoptarget` as you wish and they will get called at the right time. Since Ant 1.5, the effects of this task can also be achieved by using a combination of the built-in Ant tasks `waitfor` (with the `http` condition), `parallel`, `sequential` and `antcall`. ## Parameters
Name | Description | Required
--- | --- | ---
testurl | The HTTP URL to check whether the server is running. | Yes
starttarget | The target that is called when the server needs to be started. | Yes
stoptarget | The target that is called when the server should be shut down. | Yes
testtarget | The target that is called once the server is running. This target will normally perform the actual unit tests. | Yes
timeout | The timeout in seconds. If the server could not be started before the timeout is reached, the task will terminate and report a failure. | No
## Examples In the following example, the target `start.tomcat.40` will be called if the specified test URL is not available. After the server has started up so that requests to the test URL return successful HTTP status codes, the target `test` is called. Finally, after the `test` target has completed, the target `stop.tomcat.40` is called to shut down the servlet container.
    <runservertests
        testurl="http://localhost:${test.port}/test/ServletRedirector?Cactus_Service=RUN_TEST"
        starttarget="start.tomcat.40"
        stoptarget="stop.tomcat.40"
        testtarget="test"/>