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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to