jimpo 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] >> >> >> >
I'm not familiar with Appfuse, so excuse my uninformed question. How are you configuring your datasource in your webapp? I'm guessing that you have the connection properties in a file somewhere similar to tomcat's context.xml. If so, can't you just add a similar file to your testing resources directory that would then configure the application with the test database information? Victor
signature.asc
Description: OpenPGP digital signature
