geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Prasad Kashyap" <goyathlay.geron...@gmail.com>
Subject Fwd: [itests] Framework - Top level pom
Date Tue, 29 Aug 2006 05:43:22 GMT
The openejb itests which we had for a few releases now have been dead
for a while. Here's an effort to revive them and expand it's scope for
all of Geronimo.

Based on earlier itests discussions in several threads, this is how
our itests will be structured.

* The itests will run on a  multi-module maven build.
* Each child module will be a collection of tests related logically or
by components (Eg. web, ejb, security, etc)
* The testcases will be run against a fully assembled Geronimo server.
* The testcases including the very basic setup should be a close
approximation of the APIs available to end users.
* The testcases can be written in junit and run by maven-surefire-plugin.
* maven-surefire-report will collate the results from all the tests
for staging them later.

What will it do currently:
------------------------------------
* The default profile will run on the geronimo-jetty-j2ee binary
distribution from an m2 repo.

* There is a profile which gets activated by -Dcontainer=[tomcat |
jetty] property. It picks the appropriate binary from an m2 repo.

* There is another profile in which you can specify your own binary
zip file and geronimo home. The activation property for that is
-DinputFile=my/foo/bar.zip
-DgeronimoHome=geronimo-jetty-j2ee-1.2-SNAPSHOT

* unpack the binary into each child module so a suite of related tests
run on a prisitine installation of the server.

* start the server at the beginning of each child module's lifecycle.

* stop the server at the end of each child module's lifecycle.

* allow tests in any child module to be run individually by itself.

* startServer goal can be executed with a logging option such that
it's output and error streams are logged into a surefire xml format.
This is useful when collating the information for the all the tests in
the entire project.

What's coming (TODO):
----------------------
* Find a place for the itests. Currently it is under geronimo which is
TEMPORARY..

* A few example testcases that will include distributing a app,
starting/stopping it and undeploying. Their outputs will be similarly
logged into a surefire xml format.

* A jira -  http://issues.apache.org/jira/browse/GERONIMO-2359

* wiki docs

* continuous enhancements and improvements.


What's changed: (geronimo-deployment-plugin)
-------------------------
AbstractModuleMojo.java
StartServerMojo.java
StopServerMojo.java
ServerBehavior.java
XMLReporter.java (added)

It works by simply piping both stdout and stderr of the geronimo start
command back to the  mvn process. It can silenced by using the
-Dquiet=true option.

The -DlogOutput option can be used to log the stdout and stderr of the
Geronimo start command to a surefire xml file.


To review
--------------
Here's a basic itests pom that is the beginning of a framework.

Apply the itests-1.0.patch
cd geronimo/maven-plugins/geronimo-deployment-plugin
mvn
cd geronimo/itests
mvn


Misc:
-------
NOTE: : The cargo plugin does seem to allow to capture the output of
the goals. But then we'd have to run another plugin to convert that
output to surefire like format. Neverthless, I shall look at the cargo
plugin soon. But for now, we can go with what we have and what works

The existing StartRemoteServerMojo.java in g-d-p uses plexus-utils to
execute the bin/server.jar command. However under different scenarios,
this command does not return.  The StartServerMojo from this patch
executes the same bin/server.jar in the g-d-p. It has the added
benefit of being used inside itests or elsewhere. So I propose that we
do away with the StartRemoteServerMojo completely.


Sincere thanks to :
----------------------------
Jason Dillon
David Jencks
David Blevins
Kevan Miller


Cheers
Prasad

Mime
View raw message