Hi,
We have also the same mechanism that the one described by Joe. Moreover,
the functional tests are associated to a specific profile to be executed
only if asked. We use jWebUnit to write our webapp tests cases.
To use this mechanism with 3 different QA environments, you can use the
Maven2 profile feature: in the M2_HOME/conf/settings.xml, define 3
profiles that are trigged by a variable as -Denv=env1 (or env2, env3).
To automate all this, you can declare 3 builds (one for each QA
environment) in your continuous integration server (for example, Continuum).
____________________________________________________________________________
Christophe DENEUX / Capgemini Sud / Méditerranée
Technical Leader
Tel: + 33 4 93 72 43 74 / www.capgemini.com
Fax: + 33 4 93 21 02 95
Porte de l'Arénas - Entrée B / 455 Promenade des Anglais / 06200 Nice
Join the Collaborative Business Experience
____________________________________________________________________________
Heck, Joe a écrit :
We have several different mechanisms running - but most of them are
honestly manual. The automated solution that one of our teams have come
up and and stuck with is the following:
1) set up a multi-module maven2 project, with one of those modules being
a functional test suite, another the WAR that we're pushing and banging
on.
2) using cargo, we deploy the WAR produced to an instance of Tomcat
running on an available and preset QA machine.
3) We invoke the functional tests (primarily httpunit stuff) locally.
The "how to" for the separate functional test module setup was on this
earlier - the big pieces to note being that the functional test module
is set with POM packaging, and then plugins manually bound to the
various steps (in this case, the maven-surefire-plugin bound to the
integration-test phase and the cargo plugin bound to the
"pre-integration-test" phase)
We've additionally set it up so that functional tests are only included
with a specific profile (originally named "functional-tests") so that
your personal builds will invoke them only when desired.
Anything much more complex than this, and I think we'd need to reach out
of maven with a custom AntTask bound in there to do setup/teardown kinds
of work.
-joe
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf
Of Ruel Loehr
Sent: Wednesday, August 30, 2006 1:33 PM
To: Maven Users List
Subject: Integration Testing
I'd like to query the community and see how you guys are handling
integration testing in real world environments.
I've looked through the list and the Better builds book, but didn't like
what I saw......
Here is the use case:
Use Case A:
A user has a project which builds a war. For integration testing the
war needs to be deployed in an app server.
The process will be to startup the app server, deploy the war, run unit
tests, stop the app server.
Here is the gotcha.
App servers can have many configurations. In this case, we would like
to test the functionality of this war on three different app server
configurations. Use case A would need to be executed 3 times
automatically, each time with a different server configuration.
Assuming I already know how to modify the appserver configs, any
suggestions on how the repeated execution of this use could be achived
in scalable fashion (e.g. if I have 25 server configurations my build
file won't be a nightmare to maintain).
In ant, it's pretty simple as I can just string together targets until
my heart is content. With maven, I feel I am imprisoned by the
lifecycle in this case.
Ruel Loehr
JBoss, a division of Red Hat
QA
This message contains information that may be privileged or confidential and is
the property of the Capgemini Group. It is intended only for the person to whom
it is addressed. If you are not the intended recipient, you are not authorized
to read, print, retain, copy, disseminate, distribute, or use this message or
any part thereof. If you receive this message in error, please notify the
sender immediately and delete all copies of this message.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]