Perhaps not ideal, but this would work:
mvn -Pdev clean test => for your unit tests
mvn -Dmaven.test.skip=true clean install (or cargo:deploy) => for real
install/deployment

And of course you'll need to specify a special dev/test config file
directory in the dev profile.

Wayne

On 10/26/07, jimpo <[EMAIL PROTECTED]> wrote:
>
> Using application server -specified datasources is out of the question right
> now unfortunately. Database connection details are configured inside the web
> application.
>
> It surprises me if Maven would not make it easy to use a different database
> configuration for the tests and a different one for the created application.
> This would basically make the dbUnit plugin pretty pointless, wouldn't it?
> If you are creating a release of your application, you want the release to
> point to a production db, but you still want the unit tests to be done
> against a unit test db populated with dbUnit.
>
> (not getting into whether such unit tests are really true "unit" tests...I
> need them regardless of the term)
>
>
> Arnaud Bailly wrote:
> >
> > jimpo <[EMAIL PROTECTED]> writes:
> >
> >> I am using Maven2 to build my war packet. Base maven configuration is
> >> created
> >> with Appfuse http://appfuse.org/display/APF/Home.
> >>
> >> When I do a mvn install (or mvn cargo:deploy), first a test phase
> >> executes,
> >> and then the final war is built and installed in the repository (or
> >> deployed
> >> to my app server).
> >>
> >> I want to run the tests against a different db than which the final
> >> package
> >> uses. So far I have not figured out how to do this. Test phase uses the
> >> same
> >> database as the final application.
> >>
> >> I figured out how to use profiles to switch between different databases.
> >> I
> >> can switch to test profile with, say, mvn test -Ptestdatabase. I could of
> >> course use mvn test -Ptestdatabase to test and then separate command mvn
> >> install -Dmaven.test.skip -Prealdatabase for creating the packet (and
> >> skipping tests), but that's not very nice. I want to be able to issue one
> >> command which does both phases, tests and packaging.
> >>
> >> I am guessing maybe the solution would be something like activating
> >> profile
> >> X for the tests phase, and then activating a different profile Y for the
> >> actual build. How could I accomplish this?
> >>
> >
> > Hello,
> > I do not think possible right now to activate different profiles for
> > different phases in the same run.  And I do not think this is
> > desirable. Maybe, if you are in a J2EE Container, you could use
> > different data sources parameters in test and production ? AFAIK, data
> > source configuration is independent of the applicaiont and configured
> > in the container, so you could use a test configuration, say with
> > hsqldb or derby in test, and another configuration in productoin. In
> > your webapp, data source reference will stay the same.
> >
> > HTH
> > --
> > OQube < software engineering \ génie logiciel >
> > Arnaud Bailly, Dr.
> > \web> http://www.oqube.com
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> >
>
> --
> View this message in context: 
> http://www.nabble.com/How-to-use-different-databases-for-tests-and-the-actual-application--tf4696771s177.html#a13426113
> Sent from the Maven - Users mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

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

Reply via email to